diff --git a/EDMarketConnector.py b/EDMarketConnector.py
index e174e9ff..e0829dc5 100755
--- a/EDMarketConnector.py
+++ b/EDMarketConnector.py
@@ -68,9 +68,6 @@ class AppWindow(object):
 
     def __init__(self, master):
 
-        # Start a protocol handler to handle cAPI registration. Requires main window to exist.
-        protocolhandler.start(master)
-
         self.holdofftime = config.getint('querytime') + companion.holdoff
 
         self.w = master
@@ -279,6 +276,9 @@ class AppWindow(object):
         self.w.bind_all('<<CompanionAuthEvent>>', self.auth)	# cAPI auth
         self.w.bind_all('<<Quit>>', self.onexit)		# Updater
 
+        # Start a protocol handler to handle cAPI registration. Requires main loop to be running.
+        self.w.after_idle(lambda:protocolhandler.start(self.w))
+
         # Load updater after UI creation (for WinSparkle)
         import update
         self.updater = update.Updater(self.w)