diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index 2cfa44305c1744d2b1e07f85bdd0c6e3122d2529..c60119615fbc4645eb1364b1ac9e440347b45ce5 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -1242,10 +1242,11 @@ void QMakeEvaluator::setupProject()
 {
     setTemplate();
     ProValueMap &vars = m_valuemapStack.top();
-    vars[ProKey("TARGET")] << ProString(QFileInfo(currentFileName()).baseName());
-    vars[ProKey("_PRO_FILE_")] << ProString(currentFileName());
-    vars[ProKey("_PRO_FILE_PWD_")] << ProString(currentDirectory());
-    vars[ProKey("OUT_PWD")] << ProString(m_outputDir);
+    ProFile *proFile = currentProFile();
+    vars[ProKey("TARGET")] << ProString(QFileInfo(currentFileName()).baseName()).setSource(proFile);
+    vars[ProKey("_PRO_FILE_")] << ProString(currentFileName()).setSource(proFile);
+    vars[ProKey("_PRO_FILE_PWD_")] << ProString(currentDirectory()).setSource(proFile);
+    vars[ProKey("OUT_PWD")] << ProString(m_outputDir).setSource(proFile);
 }
 
 void QMakeEvaluator::evaluateCommand(const QString &cmds, const QString &where)