diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 62ff1b721bcce5652ca4f1bb6104fd7b8ebdaeff..bf201cb8a88a4aef874b049f4ee25ee99089be66 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -735,7 +735,9 @@ void Qt4PriFileNode::changeFiles(const FileType fileType,
     QDir priFileDir = QDir(m_qt4ProFileNode->m_projectDir);
 
     if (change == AddToProFile) {
-        ProWriter::addFiles(includeFile, &lines, priFileDir, filePaths, vars);
+        // Use the first variable for adding.
+        // Yes, that's broken for adding objective c sources or other stuff.
+        ProWriter::addFiles(includeFile, &lines, priFileDir, filePaths, vars.first());
         notChanged->clear();
     } else { // RemoveFromProFile
         *notChanged = ProWriter::removeFiles(includeFile, &lines, priFileDir, filePaths, vars);
diff --git a/src/shared/proparser/prowriter.cpp b/src/shared/proparser/prowriter.cpp
index 56f249ad7eda01bbcc3e1e8f6f0859e574be5921..5c480942c1e00d18b60eda171466772daf3ee3b9 100644
--- a/src/shared/proparser/prowriter.cpp
+++ b/src/shared/proparser/prowriter.cpp
@@ -37,13 +37,13 @@ using namespace Qt4ProjectManager::Internal;
 
 void ProWriter::addFiles(ProFile *profile, QStringList *lines,
                          const QDir &proFileDir, const QStringList &filePaths,
-                         const QStringList &vars)
+                         const QString &var)
 {
     // Check if variable item exists as child of root item
     for (ProItem *item = profile->items(); item; item = item->next()) {
         if (item->kind() == ProItem::VariableKind) {
             ProVariable *proVar = static_cast<ProVariable*>(item);
-            if (vars.contains(proVar->variable())
+            if (var == proVar->variable()
                 && proVar->variableOperator() != ProVariable::RemoveOperator
                 && proVar->variableOperator() != ProVariable::ReplaceOperator) {
 
@@ -78,7 +78,7 @@ void ProWriter::addFiles(ProFile *profile, QStringList *lines,
     }
 
     // Create & append new variable item
-    QString added = QLatin1Char('\n') + vars.first() + QLatin1String(" +=");
+    QString added = QLatin1Char('\n') + var + QLatin1String(" +=");
     foreach (const QString &filePath, filePaths)
         added += QLatin1String(" \\\n    ") + proFileDir.relativeFilePath(filePath);
     *lines << added;
diff --git a/src/shared/proparser/prowriter.h b/src/shared/proparser/prowriter.h
index 26bf4449e3eb71187bcb8aa5d764de37b535a660..f4822657b764050291cedfc04bbec8ce4d6e491b 100644
--- a/src/shared/proparser/prowriter.h
+++ b/src/shared/proparser/prowriter.h
@@ -47,7 +47,7 @@ class ProWriter
 public:
     static void addFiles(ProFile *profile, QStringList *lines,
                          const QDir &proFileDir, const QStringList &filePaths,
-                         const QStringList &vars);
+                         const QString &var);
     static QStringList removeFiles(ProFile *profile, QStringList *lines,
                                    const QDir &proFileDir, const QStringList &filePaths,
                                    const QStringList &vars);