diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp
index a4643a838f7c2d21f57d8a8b716c2627fbe6a033..cd5da5fc104ac2f99a9aa7eaa0b4a5d1cc7d7237 100644
--- a/src/plugins/qtsupport/qtkitinformation.cpp
+++ b/src/plugins/qtsupport/qtkitinformation.cpp
@@ -35,6 +35,7 @@
 #include "qtparser.h"
 
 #include <utils/environment.h>
+#include <utils/qtcassert.h>
 
 namespace QtSupport {
 namespace Internal {
@@ -44,10 +45,8 @@ const char QT_INFORMATION[] = "QtSupport.QtInformation";
 QtKitInformation::QtKitInformation()
 {
     setObjectName(QLatin1String("QtKitInformation"));
-    connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
-            this, SIGNAL(validationNeeded()));
-    connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
-            this, SLOT(qtVersionsChanged(QList<int>,QList<int>,QList<int>)));
+    connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsLoaded()),
+            this, SLOT(kitsWereLoaded()));
 }
 
 Core::Id QtKitInformation::dataId() const
@@ -89,14 +88,17 @@ QVariant QtKitInformation::defaultValue(ProjectExplorer::Kit *k) const
 
 QList<ProjectExplorer::Task> QtKitInformation::validate(const ProjectExplorer::Kit *k) const
 {
+    QList<ProjectExplorer::Task> result;
+    QTC_ASSERT(QtVersionManager::instance()->isLoaded(), return result);
     BaseQtVersion *version = qtVersion(k);
     if (!version)
-        return QList<ProjectExplorer::Task>();
+        return result;
     return version->validateKit(k);
 }
 
 void QtKitInformation::fix(ProjectExplorer::Kit *k)
 {
+    QTC_ASSERT(QtVersionManager::instance()->isLoaded(), return);
     BaseQtVersion *version = qtVersion(k);
     if (!version)
         setQtVersionId(k, -1);
@@ -187,6 +189,15 @@ void QtKitInformation::qtVersionsChanged(const QList<int> &addedIds,
             notifyAboutUpdate(k);
 }
 
+void QtKitInformation::kitsWereLoaded()
+{
+    foreach (ProjectExplorer::Kit *k, ProjectExplorer::KitManager::instance()->kits())
+        fix(k);
+
+    connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
+            this, SLOT(qtVersionsChanged(QList<int>,QList<int>,QList<int>)));
+}
+
 QtPlatformKitMatcher::QtPlatformKitMatcher(const QString &platform) :
     m_platform(platform)
 { }
diff --git a/src/plugins/qtsupport/qtkitinformation.h b/src/plugins/qtsupport/qtkitinformation.h
index 5efca50a5918e7f60987941da2541ca097c1e2ba..e4b59fbf99fac42caeae5165369debc60cd7bd7d 100644
--- a/src/plugins/qtsupport/qtkitinformation.h
+++ b/src/plugins/qtsupport/qtkitinformation.h
@@ -72,6 +72,7 @@ private slots:
     void qtVersionsChanged(const QList<int> &addedIds,
                            const QList<int> &removedIds,
                            const QList<int> &changedIds);
+    void kitsWereLoaded();
 };
 
 class QTSUPPORT_EXPORT QtPlatformKitMatcher : public ProjectExplorer::KitMatcher
diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp
index cedb4773486d9fa3f7e42b90905cb133b926b557..793ae378f2576dc094e6b0d6f179c4655e81ab85 100644
--- a/src/plugins/qtsupport/qtsupportplugin.cpp
+++ b/src/plugins/qtsupport/qtsupportplugin.cpp
@@ -83,6 +83,8 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes
 
     addAutoReleasedObject(new CustomExecutableRunConfigurationFactory);
 
+    ProjectExplorer::KitManager::instance()->registerKitInformation(new QtKitInformation);
+
     return true;
 }
 
@@ -98,7 +100,6 @@ void QtSupportPlugin::extensionsInitialized()
             this, SLOT(updateVariable(QByteArray)));
 
     QtVersionManager::instance()->extensionsInitialized();
-    ProjectExplorer::KitManager::instance()->registerKitInformation(new QtKitInformation);
 }
 
 bool QtSupportPlugin::delayedInitialize()