diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 37e061496f166d370bb8e0cfe970954ba59016c9..9f06947fe952abd646c03651802bb2581accc0a5 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -106,6 +106,31 @@ QStringList QMakeStep::allArguments()
     if (!additonalArguments.contains("-spec"))
         arguments << "-spec" << bc->qtVersion()->mkspec();
 
+    // Find out what flags we pass on to qmake
+    QStringList addedUserConfigArguments;
+    QStringList removedUserConfigArguments;
+    bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
+    if (!removedUserConfigArguments.isEmpty()) {
+        foreach (const QString &removedConfig, removedUserConfigArguments)
+            arguments.append("CONFIG-=" + removedConfig);
+    }
+    if (!addedUserConfigArguments.isEmpty()) {
+        foreach (const QString &addedConfig, addedUserConfigArguments)
+            arguments.append("CONFIG+=" + addedConfig);
+    }
+
+    arguments << moreArguments();
+
+    if (!additonalArguments.isEmpty())
+        arguments << additonalArguments;
+
+    return arguments;
+}
+
+QStringList QMakeStep::moreArguments()
+{
+    Qt4BuildConfiguration *bc = qt4BuildConfiguration();
+    QStringList arguments;
 #if defined(Q_OS_WIN) || defined(Q_OS_MAC)
     ToolChain::ToolChainType type = bc->toolChainType();
     if (type == ToolChain::GCC_MAEMO)
@@ -125,24 +150,8 @@ QStringList QMakeStep::allArguments()
                   << QLatin1String("RCC_DIR=rcc");
     }
 
-    // Find out what flags we pass on to qmake
-    QStringList addedUserConfigArguments;
-    QStringList removedUserConfigArguments;
-    bc->getConfigCommandLineArguments(&addedUserConfigArguments, &removedUserConfigArguments);
-    if (!removedUserConfigArguments.isEmpty()) {
-        foreach (const QString &removedConfig, removedUserConfigArguments)
-            arguments.append("CONFIG-=" + removedConfig);
-    }
-    if (!addedUserConfigArguments.isEmpty()) {
-        foreach (const QString &addedConfig, addedUserConfigArguments)
-            arguments.append("CONFIG+=" + addedConfig);
-    }
-    if (!additonalArguments.isEmpty())
-        arguments << additonalArguments;
-
     arguments << QLatin1String(Constants::QMAKEVAR_QMLINSPECTOR_PATH) + QLatin1Char('=') +
             Core::ICore::instance()->resourcePath() + QLatin1String("/qmljsdebugger");
-
     return arguments;
 }
 
diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h
index 5c34e5da61870568254e2c9b8bf4dfe30f265aa1..659af4e4f084937939555d8454990fb3b26030a9 100644
--- a/src/plugins/qt4projectmanager/qmakestep.h
+++ b/src/plugins/qt4projectmanager/qmakestep.h
@@ -86,6 +86,7 @@ public:
     bool forced();
 
     QStringList allArguments();
+    QStringList moreArguments();
     QStringList userArguments();
     void setUserArguments(const QStringList &arguments);
 
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index bb5c5d0c4f388e7f59fe219cffd1a8fee617563c..1e70599ebe0f19881058f9e4830290ac5245bf57 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -452,7 +452,9 @@ bool Qt4BuildConfiguration::compareToImportFrom(const QString &workingDirectory)
 
 
                 QString parsedSpec = extractSpecFromArgumentList(result.second, workingDirectory, version);
-                QStringList actualArgs = removeSpecFromArgumentList(qs->userArguments());
+                QStringList actualArgs = qs->moreArguments();
+                actualArgs << qs->userArguments();
+                actualArgs = removeSpecFromArgumentList(actualArgs);
                 QStringList parsedArgs = removeSpecFromArgumentList(result.second);
 
                 if (debug) {