diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 0e441b14766f9309ac6304492a6e16ebc23c6e17..ed9d8a75d562b48f4c156fa6b4e8c5c7c15e3a8d 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -91,6 +91,14 @@ QStringList QMakeStep::arguments(const QString &buildConfiguration)
     return arguments;
 }
 
+// We match -spec and -platfrom separetly
+// We ignore -cache, because qmake contained a bug that it didn't
+// mention the -cache in the Makefile
+// That means changing the -cache option in the additional arguments
+// does not automatically rerun qmake. Alas, we could try more
+// intelligent matching for -cache, but i guess people rarely
+// do use that.
+
 QStringList removeSpecFromArgumentList(const QStringList &old)
 {
     if (!old.contains("-spec") && !old.contains("-platform"))
@@ -100,7 +108,7 @@ QStringList removeSpecFromArgumentList(const QStringList &old)
     foreach(const QString &item, old) {
         if (ignoreNext) {
             ignoreNext = false;
-        } else if (item == "-spec" || item == "-platform") {
+        } else if (item == "-spec" || item == "-platform" || item == "-cache") {
             ignoreNext = true;
         } else {
             newList << item;