diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp
index d40449199af72e68180b9c90ee26e765b47f79e1..0fb831fcd20082480b8329b9eb38fa1ffafe9a98 100644
--- a/src/plugins/qtsupport/qtsupportplugin.cpp
+++ b/src/plugins/qtsupport/qtsupportplugin.cpp
@@ -96,6 +96,8 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes
 
     ProjectExplorer::KitManager::registerKitInformation(new QtKitInformation);
 
+    QtVersionManager::initialized();
+
     return true;
 }
 
@@ -108,8 +110,6 @@ void QtSupportPlugin::extensionsInitialized()
            " You probably want %1 instead.").arg(QString::fromLatin1(kHostBins)));
     connect(VariableManager::instance(), SIGNAL(variableUpdateRequested(QByteArray)),
             this, SLOT(updateVariable(QByteArray)));
-
-    QtVersionManager::extensionsInitialized();
 }
 
 bool QtSupportPlugin::delayedInitialize()
diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp
index 37e2cd36993b4758eaf54e657e525cb9ce125a00..a0081e4e0343eb7aec16d25499ca1085bcdcc774 100644
--- a/src/plugins/qtsupport/qtversionmanager.cpp
+++ b/src/plugins/qtsupport/qtversionmanager.cpp
@@ -40,6 +40,8 @@
 
 #include <extensionsystem/pluginmanager.h>
 
+#include <projectexplorer/toolchainmanager.h>
+
 #include <utils/buildablehelperlibrary.h>
 #include <utils/filesystemwatcher.h>
 #include <utils/hostosinfo.h>
@@ -159,8 +161,11 @@ QtVersionManager::QtVersionManager()
     connect(m_fileWatcherTimer, SIGNAL(timeout()), SLOT(updateFromInstaller()));
 }
 
-void QtVersionManager::extensionsInitialized()
+void QtVersionManager::triggerQtVersionRestore()
 {
+    disconnect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainsLoaded()),
+               this, SLOT(triggerQtVersionRestore()));
+
     bool success = restoreQtVersions();
     m_instance->updateFromInstaller(false);
     if (!success) {
@@ -202,6 +207,12 @@ QtVersionManager::~QtVersionManager()
     m_versions.clear();
 }
 
+void QtVersionManager::initialized()
+{
+    connect(ProjectExplorer::ToolChainManager::instance(), SIGNAL(toolChainsLoaded()),
+            QtVersionManager::instance(), SLOT(triggerQtVersionRestore()));
+}
+
 QObject *QtVersionManager::instance()
 {
     return m_instance;
diff --git a/src/plugins/qtsupport/qtversionmanager.h b/src/plugins/qtsupport/qtversionmanager.h
index c4b2fda07c5f769bbc435bfba61a8563879e57c9..8f8bf538e4152968f8cefd4d884159bf488dbb88 100644
--- a/src/plugins/qtsupport/qtversionmanager.h
+++ b/src/plugins/qtsupport/qtversionmanager.h
@@ -45,7 +45,7 @@ public:
     static QObject *instance();
     QtVersionManager();
     ~QtVersionManager();
-    static void extensionsInitialized();
+    static void initialized();
     static bool delayedInitialize();
 
     static bool isLoaded();
@@ -83,6 +83,7 @@ public slots:
 
 private slots:
     void updateFromInstaller(bool emitSignal = true);
+    void triggerQtVersionRestore();
 
 private:
     // Used by QtOptionsPage