diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 006352f4a01f9fdd4fa4eedbf301d9f4951fedc2..ab57f72f5937f07dd4817f95f45f889abe3b446c 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -313,6 +313,7 @@ bool Qt4Project::fromMap(const QVariantMap &map)
     updateFileList();
     // This might be incorrect, need a full update
     updateCodeModel();
+
     createApplicationProjects();
 
     foreach (Target *t, targets())
@@ -998,10 +999,26 @@ void Qt4Project::createApplicationProjects()
                 target->removeRunConfiguration(rc);
         }
 
+        // We use the list twice
+        QList<Qt4ProFileNode *> profiles = applicationProFiles();
+        QStringList paths;
+        foreach (Qt4ProFileNode *pro, profiles)
+            paths << pro->path();
+
+        foreach (RunConfiguration *rc, target->runConfigurations()) {
+            if (Qt4RunConfiguration *qt4rc = qobject_cast<Qt4RunConfiguration *>(rc)) {
+                if (!paths.contains(qt4rc->proFilePath())) {
+                    // A deleted .pro file? or a change template
+                    // We do remove those though
+                    target->removeRunConfiguration(rc);
+                }
+            }
+        }
+
         // Only add new runconfigurations if there are none.
         if (target->runConfigurations().isEmpty()) {
             Qt4Target *qt4Target = static_cast<Qt4Target *>(target);
-            foreach (Qt4ProFileNode *qt4proFile, applicationProFiles()) {
+            foreach (Qt4ProFileNode *qt4proFile, profiles) {
                 qt4Target->addRunConfigurationForPath(qt4proFile->path());
             }
         }