diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index aa7dab53ffe90edff3658b0e8b601e10a3dc0805..7c270fc5a92637aa68c6dfc109c1050c14265b45 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -165,6 +165,15 @@ int QmlProjectRunConfiguration::qtVersionId() const
     return m_qtVersionId;
 }
 
+void QmlProjectRunConfiguration::setQtVersionId(int id)
+{
+    if (m_qtVersionId == id)
+        return;
+
+    m_qtVersionId = id;
+    qmlTarget()->qmlProject()->refresh(QmlProject::Configuration);
+}
+
 Qt4ProjectManager::QtVersion *QmlProjectRunConfiguration::qtVersion() const
 {
     if (m_qtVersionId == -1)
@@ -311,7 +320,7 @@ void QmlProjectRunConfiguration::onQtVersionSelectionChanged()
 {
     QVariant data = m_qtVersionComboBox.data()->itemData(m_qtVersionComboBox.data()->currentIndex());
     QTC_ASSERT(data.isValid() && data.canConvert(QVariant::Int), return)
-    m_qtVersionId = data.toInt();
+    setQtVersionId(data.toInt());
     updateEnabled();
 }
 
@@ -348,7 +357,7 @@ QVariantMap QmlProjectRunConfiguration::toMap() const
 
 bool QmlProjectRunConfiguration::fromMap(const QVariantMap &map)
 {
-    m_qtVersionId = map.value(QLatin1String(Constants::QML_VIEWER_QT_KEY), -1).toInt();
+    setQtVersionId(map.value(QLatin1String(Constants::QML_VIEWER_QT_KEY), -1).toInt());
     m_qmlViewerArgs = map.value(QLatin1String(Constants::QML_VIEWER_ARGUMENTS_KEY)).toString();
     m_scriptFile = map.value(QLatin1String(Constants::QML_MAINSCRIPT_KEY), M_CURRENT_FILE).toString();
 
@@ -411,14 +420,15 @@ void QmlProjectRunConfiguration::updateQtVersions()
     //
     if (!qtVersions->isValidId(m_qtVersionId)
             || !isValidVersion(qtVersions->version(m_qtVersionId))) {
-        m_qtVersionId = -1;
+        int newVersionId = -1;
         // take first one you find
         foreach (Qt4ProjectManager::QtVersion *version, qtVersions->validVersions()) {
             if (isValidVersion(version)) {
-                m_qtVersionId = version->uniqueId();
+                newVersionId = version->uniqueId();
                 break;
             }
         }
+        setQtVersionId(newVersionId);
     }
 
     updateEnabled();
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
index 7381fa1b54586f49db6183fae68c3f846a026890..9b231f430c593702e4e7d266003b0ef1c3d861ba 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
@@ -111,6 +111,7 @@ protected:
 private:
     void ctor();
     static bool isValidVersion(Qt4ProjectManager::QtVersion *version);
+    void setQtVersionId(int id);
 
     // absolute path to current file (if being used)
     QString m_currentFileFilename;