diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index c60119615fbc4645eb1364b1ac9e440347b45ce5..6fb9c05ae5747534e453084cb8717a335352867f 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -1222,7 +1222,7 @@ bool QMakeEvaluator::loadSpec()
     m_qmakespec = QDir::cleanPath(qmakespec);
 
     if (!m_superfile.isEmpty()
-        && evaluateFile(m_superfile, QMakeHandler::EvalConfigFile, LoadProOnly) != ReturnTrue) {
+        && evaluateFile(m_superfile, QMakeHandler::EvalConfigFile, LoadProOnly|LoadHidden) != ReturnTrue) {
         return false;
     }
     if (!loadSpecInternal())
@@ -1813,7 +1813,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateFile(
         m_current = m_locationStack.pop();
         pro->deref();
 #ifdef PROEVALUATOR_FULL
-        if (ok == ReturnTrue) {
+        if (ok == ReturnTrue && !(flags & LoadHidden)) {
             ProStringList &iif = m_valuemapStack.first()[ProKey("QMAKE_INTERNAL_INCLUDED_FILES")];
             ProString ifn(fileName);
             if (!iif.contains(ifn))
diff --git a/qmake/library/qmakeevaluator.h b/qmake/library/qmakeevaluator.h
index 59e3295f69e687fab6e00811108e642259297b86..09617ba019e06ee9e60e7f28af938f6dafcf6346 100644
--- a/qmake/library/qmakeevaluator.h
+++ b/qmake/library/qmakeevaluator.h
@@ -102,7 +102,8 @@ public:
         LoadPreFiles = 1,
         LoadPostFiles = 2,
         LoadAll = LoadPreFiles|LoadPostFiles,
-        LoadSilent = 0x10
+        LoadSilent = 0x10,
+        LoadHidden = 0x20
     };
     Q_DECLARE_FLAGS(LoadFlags, LoadFlag)