diff --git a/shared/proparser/profileevaluator.cpp b/shared/proparser/profileevaluator.cpp
index b7c296420af09942bdcb6a4b5e7a71906abb3939..723c6e2216f6b07c90278d717bb4dfce07366636 100644
--- a/shared/proparser/profileevaluator.cpp
+++ b/shared/proparser/profileevaluator.cpp
@@ -1713,7 +1713,7 @@ bool ProFileEvaluator::Private::evaluateConditionalFunction(const QString &funct
                 ok = false;
                 break;
             }
-            QString msg = args.first();
+            QString msg = fixEnvVariables(args.first());
             if (function == QLatin1String("error")) {
                 QStringList parents;
                 foreach (ProFile *proFile, m_profileStack)
@@ -2085,14 +2085,23 @@ bool ProFileEvaluator::contains(const QString &variableName) const
     return d->m_valuemap.contains(variableName);
 }
 
+inline QStringList fixEnvVariables(const QStringList &x)
+{
+    QStringList ret;
+    foreach (const QString &str, x)
+        ret << Option::fixString(str, Option::FixEnvVars);
+    return ret;
+}
+
+
 QStringList ProFileEvaluator::values(const QString &variableName) const
 {
-    return d->values(variableName);
+    return fixEnvVariables(d->values(variableName));
 }
 
 QStringList ProFileEvaluator::values(const QString &variableName, const ProFile *pro) const
 {
-    return d->values(variableName, pro);
+    return fixEnvVariables(d->values(variableName, pro));
 }
 
 ProFileEvaluator::TemplateType ProFileEvaluator::templateType()
diff --git a/shared/proparser/proparserutils.h b/shared/proparser/proparserutils.h
index daab115a4476345da7c6136cf252595dedc9adc6..6705ffad39f33a8bdf0a939dae89313c7ad4f4c7 100644
--- a/shared/proparser/proparserutils.h
+++ b/shared/proparser/proparserutils.h
@@ -173,7 +173,12 @@ static QStringList replaceInList(const QStringList &varList, const QRegExp &rege
 }
 */
 
-inline QStringList splitPathList(const QString paths)
+inline QString fixEnvVariables(const QString &x)
+{
+    return Option::fixString(x, Option::FixEnvVars);
+}
+
+inline QStringList splitPathList(const QString &paths)
 {
     return paths.split(Option::dirlist_sep);
 }