diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index 8fad206f6acf3da3c27c8c1814fbe3aa9d2600bf..32cec77306d52808db11927f8763f9d2810f7aa7 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -211,7 +211,6 @@ void QMakeEvaluator::initFrom(const QMakeEvaluator &other)
     m_valuemapStack = other.m_valuemapStack;
     m_valuemapInited = true;
     m_qmakespec = other.m_qmakespec;
-    m_qmakespecFull = other.m_qmakespecFull;
     m_qmakespecName = other.m_qmakespecName;
     m_mkspecPaths = other.m_mkspecPaths;
     m_featureRoots = other.m_featureRoots;
@@ -1129,16 +1128,17 @@ bool QMakeEvaluator::loadSpecInternal()
         return false;
     }
 #ifdef Q_OS_UNIX
-    m_qmakespecFull = QFileInfo(m_qmakespec).canonicalFilePath();
+    m_qmakespec = QFileInfo(m_qmakespec).canonicalFilePath();
 #else
     // We can't resolve symlinks as they do on Unix, so configure.exe puts
     // the source of the qmake.conf at the end of the default/qmake.conf in
     // the QMAKESPEC_ORIGINAL variable.
     const ProString &orig_spec = first(ProKey("QMAKESPEC_ORIGINAL"));
-    m_qmakespecFull = orig_spec.isEmpty() ? m_qmakespec : orig_spec.toQString();
+    if (!orig_spec.isEmpty())
+        m_qmakespec = orig_spec.toQString();
 #endif
-    valuesRef(ProKey("QMAKESPEC")) << ProString(m_qmakespecFull);
-    m_qmakespecName = IoUtils::fileName(m_qmakespecFull).toString();
+    valuesRef(ProKey("QMAKESPEC")) << ProString(m_qmakespec);
+    m_qmakespecName = IoUtils::fileName(m_qmakespec).toString();
     if (!evaluateFeatureFile(QLatin1String("spec_post.prf")))
         return false;
     // The MinGW and x-build specs may change the separator; $$shell_{path,quote}() need it
@@ -1426,12 +1426,12 @@ void QMakeEvaluator::updateFeaturePaths()
     foreach (const QString &item, m_qmakepath)
         feature_bases << (item + mkspecs_concat);
 
-    if (!m_qmakespecFull.isEmpty()) {
+    if (!m_qmakespec.isEmpty()) {
         // The spec is already platform-dependent, so no subdirs here.
-        feature_roots << (m_qmakespecFull + features_concat);
+        feature_roots << (m_qmakespec + features_concat);
 
         // Also check directly under the root directory of the mkspecs collection
-        QDir specdir(m_qmakespecFull);
+        QDir specdir(m_qmakespec);
         while (!specdir.isRoot() && specdir.cdUp()) {
             const QString specpath = specdir.path();
             if (specpath.endsWith(mkspecs_concat)) {
diff --git a/qmake/library/qmakeevaluator.h b/qmake/library/qmakeevaluator.h
index 312b02c41350f291a755179ac46aa67790d4f831..cdc85c3b23649e72fe15984ed3b3ec3b2946e593 100644
--- a/qmake/library/qmakeevaluator.h
+++ b/qmake/library/qmakeevaluator.h
@@ -278,7 +278,6 @@ public:
     bool m_valuemapInited;
     bool m_hostBuild;
     QString m_qmakespec;
-    QString m_qmakespecFull;
     QString m_qmakespecName;
     QString m_superfile;
     QString m_conffile;
diff --git a/qmake/project.h b/qmake/project.h
index f38b4351febee88f95175df4a3125085dac339f1..3b5e57cd904f2f20439fcde2961439e5ebbc67e2 100644
--- a/qmake/project.h
+++ b/qmake/project.h
@@ -60,7 +60,7 @@ public:
     QString buildRoot() const { return m_buildRoot; }
     QString confFile() const { return m_conffile; }
     QString cacheFile() const { return m_cachefile; }
-    QString specDir() const { return m_qmakespecFull; }
+    QString specDir() const { return m_qmakespec; }
 
     ProString expand(const QString &v, const QString &file, int line);
     QStringList expand(const ProKey &func, const QList<ProStringList> &args);