diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp
index ba1a2d32fda061d633b364c17151312c1034fd29..430cc3ae565a5abcc20722469fe6def1503ca336 100644
--- a/src/shared/proparser/profileevaluator.cpp
+++ b/src/shared/proparser/profileevaluator.cpp
@@ -28,7 +28,6 @@
 **************************************************************************/
 
 #include "profileevaluator.h"
-#include "proparserutils.h"
 #include "proitems.h"
 
 #include <QtCore/QByteArray>
@@ -83,51 +82,20 @@ namespace {
 //
 ///////////////////////////////////////////////////////////////////////
 
-QString
-Option::fixString(QString string, uchar flags)
-{
-    // XXX Ripped out caching, so this will be slow. Should not matter for current uses.
-
-    //fix the environment variables
-    if (flags & Option::FixEnvVars) {
-        int rep;
-        QRegExp reg_variableName(QLatin1String("\\$\\(.*\\)"));
-        reg_variableName.setMinimal(true);
-        while ((rep = reg_variableName.indexIn(string)) != -1)
-            string.replace(rep, reg_variableName.matchedLength(),
-                           QString::fromLocal8Bit(qgetenv(string.mid(rep + 2, reg_variableName.matchedLength() - 3).toLatin1().constData()).constData()));
-    }
-
-    //canonicalize it (and treat as a path)
-    if (flags & Option::FixPathCanonicalize) {
-#if 0
-        string = QFileInfo(string).canonicalFilePath();
-#endif
-        string = QDir::cleanPath(string);
-    }
-
-    if (string.length() > 2 && string[0].isLetter() && string[1] == QLatin1Char(':'))
-        string[0] = string[0].toLower();
-
-    //fix separators
-    Q_ASSERT(!((flags & Option::FixPathToLocalSeparators) && (flags & Option::FixPathToTargetSeparators)));
-    if (flags & Option::FixPathToLocalSeparators) {
 #if defined(Q_OS_WIN32)
-        string = string.replace(QLatin1Char('/'), QLatin1Char('\\'));
+ProFileEvaluator::Option::TARG_MODE ProFileEvaluator::Option::target_mode = ProFileEvaluator::Option::TARG_WIN_MODE;
+#elif defined(Q_OS_MAC)
+ProFileEvaluator::Option::TARG_MODE ProFileEvaluator::Option::target_mode = ProFileEvaluator::Option::TARG_MACX_MODE;
+#elif defined(Q_OS_QNX6)
+ProFileEvaluator::Option::TARG_MODE ProFileEvaluator::Option::target_mode = ProFileEvaluator::Option::TARG_QNX6_MODE;
 #else
-        string = string.replace(QLatin1Char('\\'), QLatin1Char('/'));
+ProFileEvaluator::Option::TARG_MODE ProFileEvaluator::Option::target_mode = ProFileEvaluator::Option::TARG_UNIX_MODE;
 #endif
-    } else if (flags & Option::FixPathToTargetSeparators) {
-        string = string.replace(QLatin1Char('/'), Option::dir_sep)
-                       .replace(QLatin1Char('\\'), Option::dir_sep);
-    }
 
-    if ((string.startsWith(QLatin1Char('"')) && string.endsWith(QLatin1Char('"'))) ||
-        (string.startsWith(QLatin1Char('\'')) && string.endsWith(QLatin1Char('\''))))
-        string = string.mid(1, string.length() - 2);
-
-    return string;
-}
+QString ProFileEvaluator::Option::qmakespec;
+QString ProFileEvaluator::Option::dirlist_sep;
+QString ProFileEvaluator::Option::dir_sep;
+QChar ProFileEvaluator::Option::field_sep;
 
 ///////////////////////////////////////////////////////////////////////
 //
@@ -705,7 +673,7 @@ static QStringList split_value_list(const QString &vals, bool do_semicolon=false
         }
 
         if (!parens && quote.isEmpty() && ((do_semicolon && unicode == SEMICOLON) ||
-                                           vals_data[x] == Option::field_sep)) {
+                                           vals_data[x] == ProFileEvaluator::Option::field_sep)) {
             ret << build;
             build.clear();
         } else {
@@ -752,6 +720,34 @@ static void replaceInList(QStringList *varlist,
     }
 }
 
+static QString expandEnvVars(const QString &str)
+{
+    QString string = str;
+    int rep;
+    QRegExp reg_variableName(QLatin1String("\\$\\(.*\\)"));
+    reg_variableName.setMinimal(true);
+    while ((rep = reg_variableName.indexIn(string)) != -1)
+        string.replace(rep, reg_variableName.matchedLength(),
+                       QString::fromLocal8Bit(qgetenv(string.mid(rep + 2, reg_variableName.matchedLength() - 3).toLatin1().constData()).constData()));
+    return string;
+}
+
+// This is braindead, but we want qmake compat
+static QString fixPathToLocalOS(const QString &str)
+{
+    QString string = str;
+
+    if (string.length() > 2 && string[0].isLetter() && string[1] == QLatin1Char(':'))
+        string[0] = string[0].toLower();
+
+#if defined(Q_OS_WIN32)
+    string.replace(QLatin1Char('/'), QLatin1Char('\\'));
+#else
+    string.replace(QLatin1Char('\\'), QLatin1Char('/'));
+#endif
+    return string;
+}
+
 //////// Evaluator /////////
 
 ProItem::ProItemReturn ProFileEvaluator::Private::visitBeginProBlock(ProBlock *block)
@@ -1056,7 +1052,8 @@ static QStringList qmake_mkspec_paths()
     const QString concat = QDir::separator() + QString(QLatin1String("mkspecs"));
     QByteArray qmakepath = qgetenv("QMAKEPATH");
     if (!qmakepath.isEmpty()) {
-        const QStringList lst = QString::fromLocal8Bit(qmakepath).split(Option::dirlist_sep);
+        const QStringList lst = QString::fromLocal8Bit(qmakepath)
+                .split(ProFileEvaluator::Option::dirlist_sep);
         for (QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it)
             ret << ((*it) + concat);
     }
@@ -1090,7 +1087,7 @@ QStringList ProFileEvaluator::Private::qmakeFeaturePaths()
         QString path;
         int last_slash = Option::mkfile::cachefile.lastIndexOf(Option::dir_sep);
         if (last_slash != -1)
-            path = Option::fixPathToLocalOS(Option::mkfile::cachefile.left(last_slash));
+            path = fixPathToLocalOS(Option::mkfile::cachefile.left(last_slash));
         foreach (const QString &concat_it, concat)
             feature_roots << (path + concat_it);
     }
@@ -1657,7 +1654,6 @@ QStringList ProFileEvaluator::Private::evaluateExpandFunction(const QString &fun
                 q->logMessage(format("cat(file, singleline=true) requires one or two arguments."));
             } else {
                 QString file = args[0];
-                file = Option::fixPathToLocalOS(file);
 
                 bool singleLine = true;
                 if (args.count() > 1)
@@ -1682,7 +1678,7 @@ QStringList ProFileEvaluator::Private::evaluateExpandFunction(const QString &fun
             } else {
                 QString file = args[0], seek_variableName = args[1];
 
-                ProFile pro(Option::fixPathToLocalOS(file));
+                ProFile pro(fixPathToLocalOS(file));
 
                 ProFileEvaluator visitor;
                 visitor.setVerbose(m_verbose);
@@ -1819,7 +1815,7 @@ QStringList ProFileEvaluator::Private::evaluateExpandFunction(const QString &fun
                 if (args.count() == 2)
                     recursive = (!args[1].compare(QLatin1String("true"), Qt::CaseInsensitive) || args[1].toInt());
                 QStringList dirs;
-                QString r = Option::fixPathToLocalOS(args[0]);
+                QString r = fixPathToLocalOS(args[0]);
                 int slash = r.lastIndexOf(QDir::separator());
                 if (slash != -1) {
                     dirs.append(r.left(slash));
@@ -2332,7 +2328,7 @@ ProItem::ProItemReturn ProFileEvaluator::Private::evaluateConditionalFunction(
                 q->logMessage(format("%1(message) requires one argument.").arg(function));
                 return ProItem::ReturnFalse;
             }
-            QString msg = Option::fixString(args.first(), Option::FixEnvVars);
+            QString msg = expandEnvVars(args.first());
             q->fileMessage(QString::fromLatin1("Project %1: %2").arg(function.toUpper(), msg));
             // ### Consider real termination in non-cumulative mode
             return returnBool(function != QLatin1String("error"));
@@ -2367,7 +2363,7 @@ ProItem::ProItemReturn ProFileEvaluator::Private::evaluateConditionalFunction(
                 return ProItem::ReturnFalse;
             }
             QString file = args.first();
-            file = Option::fixPathToLocalOS(file);
+            file = fixPathToLocalOS(file);
 
             if (QFile::exists(file)) {
                 return ProItem::ReturnTrue;
@@ -2607,7 +2603,7 @@ inline QStringList fixEnvVariables(const QStringList &x)
 {
     QStringList ret;
     foreach (const QString &str, x)
-        ret << Option::fixString(str, Option::FixEnvVars);
+        ret << expandEnvVars(str);
     return ret;
 }
 
diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h
index c38923d51f8327760ee96e2d08fb1f486e360599..97436a40d6e04d2d83574464ccdddcb735ea8400 100644
--- a/src/shared/proparser/profileevaluator.h
+++ b/src/shared/proparser/profileevaluator.h
@@ -43,6 +43,51 @@ QT_BEGIN_NAMESPACE
 class ProFileEvaluator
 {
 public:
+
+    // This struct is from qmake, but we are not using everything.
+    struct Option
+    {
+        //simply global convenience
+        //static QString libtool_ext;
+        //static QString pkgcfg_ext;
+        //static QString prf_ext;
+        //static QString prl_ext;
+        //static QString ui_ext;
+        //static QStringList h_ext;
+        //static QStringList cpp_ext;
+        //static QString h_moc_ext;
+        //static QString cpp_moc_ext;
+        //static QString obj_ext;
+        //static QString lex_ext;
+        //static QString yacc_ext;
+        //static QString h_moc_mod;
+        //static QString cpp_moc_mod;
+        //static QString lex_mod;
+        //static QString yacc_mod;
+        static QString dir_sep;
+        static QString dirlist_sep;
+        static QString qmakespec;
+        static QChar field_sep;
+
+        enum TARG_MODE { TARG_UNIX_MODE, TARG_WIN_MODE, TARG_MACX_MODE, TARG_MAC9_MODE, TARG_QNX6_MODE };
+        static TARG_MODE target_mode;
+        //static QString pro_ext;
+        //static QString res_ext;
+
+        static void init()
+        {
+#ifdef Q_OS_WIN
+            dirlist_sep = QLatin1Char(';');
+            dir_sep = QLatin1Char('\\');
+#else
+            dirlist_sep = QLatin1Char(':');
+            dir_sep = QLatin1Char('/');
+#endif
+            qmakespec = QString::fromLatin1(qgetenv("QMAKESPEC").data());
+            field_sep = QLatin1Char(' ');
+        }
+    };
+
     enum TemplateType {
         TT_Unknown = 0,
         TT_Application,
diff --git a/src/shared/proparser/proparser.pri b/src/shared/proparser/proparser.pri
index 78b43d5901f80909a3d59407752c1e59c0139b22..d1c5d630e86f36e0520744575c779861e3702de0 100644
--- a/src/shared/proparser/proparser.pri
+++ b/src/shared/proparser/proparser.pri
@@ -12,7 +12,6 @@ HEADERS += \
         profileevaluator.h \
         proiteminfo.h \
         proitems.h \
-        proparserutils.h \
         prowriter.h \
         proxml.h \
         valueeditor.h \
diff --git a/src/shared/proparser/proparserutils.h b/src/shared/proparser/proparserutils.h
deleted file mode 100644
index 4ff4818ac9da7d07cb5b9c19bfa14049600b4b3c..0000000000000000000000000000000000000000
--- a/src/shared/proparser/proparserutils.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** Commercial Usage
-**
-** Licensees holding valid Qt Commercial licenses may use this file in
-** accordance with the Qt Commercial License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Nokia.
-**
-** GNU Lesser General Public License Usage
-**
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at http://www.qtsoftware.com/contact.
-**
-**************************************************************************/
-
-#ifndef PROPARSERUTILS_H
-#define PROPARSERUTILS_H
-
-QT_BEGIN_NAMESPACE
-
-// This struct is from qmake, but we are not using everything.
-struct Option
-{
-    //simply global convenience
-    //static QString libtool_ext;
-    //static QString pkgcfg_ext;
-    //static QString prf_ext;
-    //static QString prl_ext;
-    //static QString ui_ext;
-    //static QStringList h_ext;
-    //static QStringList cpp_ext;
-    //static QString h_moc_ext;
-    //static QString cpp_moc_ext;
-    //static QString obj_ext;
-    //static QString lex_ext;
-    //static QString yacc_ext;
-    //static QString h_moc_mod;
-    //static QString cpp_moc_mod;
-    //static QString lex_mod;
-    //static QString yacc_mod;
-    static QString dir_sep;
-    static QString dirlist_sep;
-    static QString qmakespec;
-    static QChar field_sep;
-
-    enum TARG_MODE { TARG_UNIX_MODE, TARG_WIN_MODE, TARG_MACX_MODE, TARG_MAC9_MODE, TARG_QNX6_MODE };
-    static TARG_MODE target_mode;
-    //static QString pro_ext;
-    //static QString res_ext;
-
-    static void init()
-    {
-#ifdef Q_OS_WIN
-        Option::dirlist_sep = QLatin1Char(';');
-        Option::dir_sep = QLatin1Char('\\');
-#else
-        Option::dirlist_sep = QLatin1Char(':');
-        Option::dir_sep = QLatin1Char(QLatin1Char('/'));
-#endif
-        Option::qmakespec = QString::fromLatin1(qgetenv("QMAKESPEC").data());
-        Option::field_sep = QLatin1Char(' ');
-    }
-
-    enum StringFixFlags {
-        FixNone                 = 0x00,
-        FixEnvVars              = 0x01,
-        FixPathCanonicalize     = 0x02,
-        FixPathToLocalSeparators  = 0x04,
-        FixPathToTargetSeparators = 0x08
-    };
-    static QString fixString(QString string, uchar flags);
-
-    inline static QString fixPathToLocalOS(const QString &in, bool fix_env = true, bool canonical = true)
-    {
-        uchar flags = FixPathToLocalSeparators;
-        if (fix_env)
-            flags |= FixEnvVars;
-        if (canonical)
-            flags |= FixPathCanonicalize;
-        return fixString(in, flags);
-    }
-};
-#if defined(Q_OS_WIN32)
-Option::TARG_MODE Option::target_mode = Option::TARG_WIN_MODE;
-#elif defined(Q_OS_MAC)
-Option::TARG_MODE Option::target_mode = Option::TARG_MACX_MODE;
-#elif defined(Q_OS_QNX6)
-Option::TARG_MODE Option::target_mode = Option::TARG_QNX6_MODE;
-#else
-Option::TARG_MODE Option::target_mode = Option::TARG_UNIX_MODE;
-#endif
-
-QString Option::qmakespec;
-QString Option::dirlist_sep;
-QString Option::dir_sep;
-QChar Option::field_sep;
-
-QT_END_NAMESPACE
-
-#endif // PROPARSERUTILS_H