diff --git a/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp b/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp
index 93e5feb76251824ca2675c500ad733113b678d63..57bf18a2d1de525b75592bf90a67c76288392276 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp
@@ -266,7 +266,7 @@ void S60PublisherOvi::updateProFile(const QString &var, const QString &values)
 
     //todo: after ossi has added scope profile writing, make sure the following works
     //QString scope("symbian");
-    ProWriter::addVarValues(profile, &lines, m_qt4project->rootProjectNode()->path(), QStringList() << values, var);
+    ProWriter::addVarValues(profile, &lines, QStringList() << values, var);
 
     if (qfile.open(QIODevice::WriteOnly | QIODevice::Text)) {
         qfile.write(lines.join("\n").toLocal8Bit());
diff --git a/src/shared/proparser/prowriter.cpp b/src/shared/proparser/prowriter.cpp
index 7831991ae52d5c9d3db9dc699adc8fd473d047d4..353484d1c74fd3006591e2b8efe2bc6adf3422d0 100644
--- a/src/shared/proparser/prowriter.cpp
+++ b/src/shared/proparser/prowriter.cpp
@@ -175,17 +175,8 @@ static const ushort *skipToken(ushort tok, const ushort *&tokPtr, int &lineNo)
 }
 
 void ProWriter::addVarValues(ProFile *profile, QStringList *lines,
-    const QDir &proFileDir, const QStringList &values, const QString &var,
-    bool valuesAreFiles)
+    const QStringList &values, const QString &var)
 {
-    QStringList valuesToWrite;
-    if (valuesAreFiles) {
-        foreach (const QString &v, values)
-            valuesToWrite << proFileDir.relativeFilePath(v);
-    } else {
-        valuesToWrite = values;
-    }
-
     // Check if variable item exists as child of root item
     const ushort *tokPtr = profile->tokPtr();
     int lineNo = 0;
@@ -213,7 +204,7 @@ void ProWriter::addVarValues(ProFile *profile, QStringList *lines,
                     }
                 }
                 QString added;
-                foreach (const QString &v, valuesToWrite)
+                foreach (const QString &v, values)
                     added += QLatin1String("    ") + v + QLatin1String(" \\\n");
                 added.chop(3);
                 lines->insert(lineNo, added);
@@ -227,11 +218,21 @@ void ProWriter::addVarValues(ProFile *profile, QStringList *lines,
 
     // Create & append new variable item
     QString added = QLatin1Char('\n') + var + QLatin1String(" +=");
-    foreach (const QString &v, valuesToWrite)
+    foreach (const QString &v, values)
         added += QLatin1String(" \\\n    ") + v;
     *lines << added;
 }
 
+void ProWriter::addFiles(ProFile *profile, QStringList *lines,
+    const QDir &proFileDir, const QStringList &values, const QString &var)
+{
+    QStringList valuesToWrite;
+    foreach (const QString &v, values)
+        valuesToWrite << proFileDir.relativeFilePath(v);
+
+    addVarValues(profile, lines, valuesToWrite, var);
+}
+
 static void findProVariables(const ushort *tokPtr, const QStringList &vars,
                              QList<int> *proVars, const uint firstLine = 0)
 {
@@ -256,25 +257,17 @@ static void findProVariables(const ushort *tokPtr, const QStringList &vars,
     }
 }
 
-QStringList ProWriter::removeVarValues(ProFile *profile, QStringList *lines,
-    const QDir &proFileDir, const QStringList &values, const QStringList &vars,
-    bool valuesAreFiles)
+QList<int> ProWriter::removeVarValues(ProFile *profile, QStringList *lines,
+    const QStringList &values, const QStringList &vars)
 {
-    QStringList notChanged = values;
+    QList<int> notChanged;
+    // yeah, this is a bit silly
+    for (int i = 0; i < values.size(); i++)
+        notChanged << i;
 
     QList<int> varLines;
     findProVariables(profile->tokPtr(), vars, &varLines);
 
-    QStringList valuesToFind;
-    if (valuesAreFiles) {
-        // This is a tad stupid - basically, it can remove only entries which
-        // the above code added.
-        foreach (const QString &absoluteFilePath, values)
-            valuesToFind << proFileDir.relativeFilePath(absoluteFilePath);
-    } else {
-        valuesToFind = values;
-    }
-
     // This code expects proVars to be sorted by the variables' appearance in the file.
     int delta = 1;
     foreach (int ln, varLines) {
@@ -326,9 +319,9 @@ QStringList ProWriter::removeVarValues(ProFile *profile, QStringList *lines,
                        colNo++;
                    }
                    const QString fn = line.mid(varCol, colNo - varCol);
-                   const int pos = valuesToFind.indexOf(fn);
+                   const int pos = values.indexOf(fn);
                    if (pos != -1) {
-                       notChanged.removeOne(values.at(pos));
+                       notChanged.removeOne(pos);
                        if (colNo < lineLen)
                            colNo++;
                        else if (varCol)
@@ -380,3 +373,18 @@ QStringList ProWriter::removeVarValues(ProFile *profile, QStringList *lines,
     }
     return notChanged;
 }
+
+QStringList ProWriter::removeFiles(ProFile *profile, QStringList *lines,
+    const QDir &proFileDir, const QStringList &values, const QStringList &vars)
+{
+    // This is a tad stupid - basically, it can remove only entries which
+    // the above code added.
+    QStringList valuesToFind;
+    foreach (const QString &absoluteFilePath, values)
+        valuesToFind << proFileDir.relativeFilePath(absoluteFilePath);
+
+    QStringList notChanged;
+    foreach (int i, removeVarValues(profile, lines, valuesToFind, vars))
+        notChanged.append(values.at(i));
+    return notChanged;
+}
diff --git a/src/shared/proparser/prowriter.h b/src/shared/proparser/prowriter.h
index 5aacf6a16c42663e74d819789def06413274057e..40ce8a73da2339b59c64f61a0828867d7ea3ce1f 100644
--- a/src/shared/proparser/prowriter.h
+++ b/src/shared/proparser/prowriter.h
@@ -49,41 +49,15 @@ namespace Internal {
 class ProWriter
 {
 public:
-    static void addFiles(ProFile *profile, QStringList *lines,
-         const QDir &proFileDir, const QStringList &filePaths, const QString &var)
-    {
-        addVarValues(profile, lines, proFileDir, filePaths, var, true);
-    }
-
-    static QStringList removeFiles(ProFile *profile, QStringList *lines,
-        const QDir &proFileDir, const QStringList &filePaths,
-        const QStringList &vars)
-    {
-        return removeVarValues(profile, lines, proFileDir, filePaths, vars, true);
-    }
-
-    static void addVarValues(ProFile *profile, QStringList *lines,
-        const QDir &proFileDir, const QStringList &values, const QString &var)
-    {
-        addVarValues(profile, lines, proFileDir, values, var, false);
-    }
-
-    static QStringList removeVarValues(ProFile *profile, QStringList *lines,
-        const QDir &proFileDir, const QStringList &values,
-        const QStringList &vars)
-    {
-        return removeVarValues(profile, lines, proFileDir, values, vars, false);
-    }
-
-private:
-
     static void addVarValues(ProFile *profile, QStringList *lines,
-        const QDir &proFileDir, const QStringList &values, const QString &var,
-        bool valuesAreFiles);
+        const QStringList &values, const QString &var);
+    static QList<int> removeVarValues(ProFile *profile, QStringList *lines,
+        const QStringList &values, const QStringList &vars);
 
-    static QStringList removeVarValues(ProFile *profile, QStringList *lines,
-        const QDir &proFileDir, const QStringList &values,
-        const QStringList &vars, bool valuesAreFiles);
+    static void addFiles(ProFile *profile, QStringList *lines,
+         const QDir &proFileDir, const QStringList &filePaths, const QString &var);
+    static QStringList removeFiles(ProFile *profile, QStringList *lines,
+        const QDir &proFileDir, const QStringList &filePaths, const QStringList &vars);
 };
 
 } // namespace Internal