diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index b8f4ac1640a9a25e681d47c6d32f8d2d4e6ae266..0e441b14766f9309ac6304492a6e16ebc23c6e17 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -156,17 +156,24 @@ bool QMakeStep::init(const QString &name)
                 // we have to compare without the spec/platform cmd argument
                 // and compare that on its own
                 QString actualSpec = extractSpecFromArgumentList(value(name, "qmakeArgs").toStringList());
+                if (actualSpec.isEmpty())
+                    actualSpec = m_pro->qtVersion(name)->mkspec();
                 QString parsedSpec = extractSpecFromArgumentList(result.second);
 
                 // Now to convert the actualSpec to a absolute path, we go through a few hops
                 if (QFileInfo(actualSpec).isRelative()) {
-                    QString path = qtVersion->versionInfo().value("QMAKE_MKSPECS") + "/" + actualSpec;
+                    QString path = qtVersion->sourcePath() + "/mkspecs/" + actualSpec;
                     if (QFileInfo(path).exists()) {
                         actualSpec = QDir::cleanPath(path);
                     } else {
-                        QString path = workingDirectory + "/" + actualSpec;
-                        if (QFileInfo(path).exists())
+                        path = qtVersion->versionInfo().value("QMAKE_MKSPECS") + "/" + actualSpec;
+                        if (QFileInfo(path).exists()) {
                             actualSpec = QDir::cleanPath(path);
+                        } else {
+                            path = workingDirectory + "/" + actualSpec;
+                            if (QFileInfo(path).exists())
+                                actualSpec = QDir::cleanPath(path);
+                        }
                     }
                 }