diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp
index b2ce9d0374f1b3a5505686c78beff475c64379f5..a5a21c4b15fd9da0bedf75953c8801cb9f2996fe 100644
--- a/src/shared/proparser/qmakeevaluator.cpp
+++ b/src/shared/proparser/qmakeevaluator.cpp
@@ -114,6 +114,7 @@ void QMakeEvaluator::initStatics()
     statics.strforever = QLatin1String("forever");
     statics.strhost_build = QLatin1String("host_build");
     statics.strTEMPLATE = ProKey("TEMPLATE");
+    statics.strQMAKE_PLATFORM = ProKey("QMAKE_PLATFORM");
 #ifdef PROEVALUATOR_FULL
     statics.strREQUIRES = ProKey("REQUIRES");
 #endif
@@ -912,6 +913,8 @@ void QMakeEvaluator::visitProVariable(
 
     if (varName == statics.strTEMPLATE)
         setTemplate();
+    else if (varName == statics.strQMAKE_PLATFORM)
+        updateFeaturePaths();
 #ifdef PROEVALUATOR_FULL
     else if (varName == statics.strREQUIRES)
         checkRequirements(values(varName));
@@ -1202,7 +1205,6 @@ bool QMakeEvaluator::loadSpec()
     }
     if (!loadSpecInternal())
         return false;
-    updateFeaturePaths(); // The spec extends the feature search path, so rebuild the cache.
     if (!m_conffile.isEmpty()
         && !evaluateFile(m_conffile, QMakeHandler::EvalConfigFile, LoadProOnly)) {
         return false;
diff --git a/src/shared/proparser/qmakeevaluator_p.h b/src/shared/proparser/qmakeevaluator_p.h
index 49cced3927a9eb4c226a9c704b912c61156822ba..d17b48431246b5e5afe9a73429e4b8e1d52fdc90 100644
--- a/src/shared/proparser/qmakeevaluator_p.h
+++ b/src/shared/proparser/qmakeevaluator_p.h
@@ -77,6 +77,7 @@ struct QMakeStatics {
     QString strforever;
     QString strhost_build;
     ProKey strTEMPLATE;
+    ProKey strQMAKE_PLATFORM;
 #ifdef PROEVALUATOR_FULL
     ProKey strREQUIRES;
 #endif