diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp
index 1da18a3980f9d261ec4befc0b15617dbc33cb77d..b8caf1269481bfdd111c4cee08772d0529d0c8ee 100644
--- a/src/shared/proparser/qmakeevaluator.cpp
+++ b/src/shared/proparser/qmakeevaluator.cpp
@@ -1445,8 +1445,8 @@ void QMakeEvaluator::updateFeaturePaths()
 
     feature_roots += m_qmakefeatures;
 
-    feature_roots += m_option->propertyValue(ProKey("QMAKEFEATURES")).toQString(m_mtmp).split(
-            m_option->dirlist_sep, QString::SkipEmptyParts);
+    feature_roots += m_option->splitPathList(
+                m_option->propertyValue(ProKey("QMAKEFEATURES")).toQString(m_mtmp));
 
     QStringList feature_bases;
     if (!m_buildRoot.isEmpty()) {
diff --git a/src/shared/proparser/qmakeglobals.cpp b/src/shared/proparser/qmakeglobals.cpp
index 5f0b521e460a2da3a60d1685032d6541dd9ef856..d34d7ba4e652848d9aeae721b2a571e3c2b6d323 100644
--- a/src/shared/proparser/qmakeglobals.cpp
+++ b/src/shared/proparser/qmakeglobals.cpp
@@ -258,6 +258,19 @@ QString QMakeGlobals::shadowedPath(const QString &fileName) const
     return QString();
 }
 
+QStringList QMakeGlobals::splitPathList(const QString &val) const
+{
+    QStringList ret;
+    if (!val.isEmpty()) {
+        QDir bdir;
+        QStringList vals = val.split(dirlist_sep);
+        ret.reserve(vals.length());
+        foreach (const QString &it, vals)
+            ret << QDir::cleanPath(bdir.absoluteFilePath(it));
+    }
+    return ret;
+}
+
 QString QMakeGlobals::getEnv(const QString &var) const
 {
 #ifdef PROEVALUATOR_SETENV
@@ -269,16 +282,7 @@ QString QMakeGlobals::getEnv(const QString &var) const
 
 QStringList QMakeGlobals::getPathListEnv(const QString &var) const
 {
-    QStringList ret;
-    QString val = getEnv(var);
-    if (!val.isEmpty()) {
-        QDir bdir;
-        QStringList vals = val.split(dirlist_sep);
-        ret.reserve(vals.length());
-        foreach (const QString &it, vals)
-            ret << QDir::cleanPath(bdir.absoluteFilePath(it));
-    }
-    return ret;
+    return splitPathList(getEnv(var));
 }
 
 QString QMakeGlobals::expandEnvVars(const QString &str) const
diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h
index ecdf316c7bc3fe3412ff213ee79a07f2e0778579..4e45f3fb6a9e4f1dd68759169e68caadbdfa3550 100644
--- a/src/shared/proparser/qmakeglobals.h
+++ b/src/shared/proparser/qmakeglobals.h
@@ -135,6 +135,7 @@ public:
 
     QString expandEnvVars(const QString &str) const;
     QString shadowedPath(const QString &fileName) const;
+    QStringList splitPathList(const QString &value) const;
 
 private:
     QString getEnv(const QString &) const;