diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 6a7f03aaaa32ce6054ff956fe701258b9b811f22..42ab6d246801e7d462ccb455923a5d5796c8f657 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -216,10 +216,10 @@ bool QMakeStep::processFinished(int exitCode, QProcess::ExitStatus status)
     return result;
 }
 
-void QMakeStep::setQMakeArguments(const QStringList &arguments)
+void QMakeStep::setUserArguments(const QStringList &arguments)
 {
     m_userArgs = arguments;
-    emit changed();
+    emit userArgumentsChanged();
 }
 
 QStringList QMakeStep::userArguments()
@@ -240,14 +240,14 @@ void QMakeStep::storeIntoLocalMap(QMap<QString, QVariant> &map)
 }
 
 QMakeStepConfigWidget::QMakeStepConfigWidget(QMakeStep *step)
-    : BuildStepConfigWidget(), m_step(step)
+    : BuildStepConfigWidget(), m_step(step), m_ignoreChange(false)
 {
     m_ui.setupUi(this);
     connect(m_ui.qmakeAdditonalArgumentsLineEdit, SIGNAL(textEdited(const QString&)),
             this, SLOT(qmakeArgumentsLineEditTextEdited()));
     connect(m_ui.buildConfigurationComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(buildConfigurationChanged()));
-    connect(step, SIGNAL(changed()),
-            this, SLOT(update()));
+    connect(step, SIGNAL(userArgumentsChanged()),
+            this, SLOT(userArgumentsChanged()));
     connect(step->buildConfiguration(), SIGNAL(qtVersionChanged()),
             this, SLOT(qtVersionChanged()));
 }
@@ -289,8 +289,10 @@ void QMakeStepConfigWidget::updateTitleLabel()
 
 void QMakeStepConfigWidget::qmakeArgumentsLineEditTextEdited()
 {
-    m_step->setQMakeArguments(
+    m_ignoreChange = true;
+    m_step->setUserArguments(
             ProjectExplorer::Environment::parseCombinedArgString(m_ui.qmakeAdditonalArgumentsLineEdit->text()));
+    m_ignoreChange = false;
 
     m_step->qt4BuildConfiguration()->qt4Project()->invalidateCachedTargetInformation();
     updateTitleLabel();
@@ -321,9 +323,12 @@ QString QMakeStepConfigWidget::displayName() const
     return m_step->displayName();
 }
 
-void QMakeStepConfigWidget::update()
+void QMakeStepConfigWidget::userArgumentsChanged()
 {
-    init();
+    if (m_ignoreChange)
+        return;
+    QString qmakeArgs = ProjectExplorer::Environment::joinArgumentList(m_step->userArguments());
+    m_ui.qmakeAdditonalArgumentsLineEdit->setText(qmakeArgs);
 }
 
 void QMakeStepConfigWidget::init()
diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h
index 36df20026af9378fd46184c0f7906defd4f645d2..c6a4a37b95dbaa5d1c8fcfaa4ce37c4fbfcecdc1 100644
--- a/src/plugins/qt4projectmanager/qmakestep.h
+++ b/src/plugins/qt4projectmanager/qmakestep.h
@@ -83,13 +83,13 @@ public:
 
     QStringList allArguments();
     QStringList userArguments();
-    void setQMakeArguments(const QStringList &arguments);
+    void setUserArguments(const QStringList &arguments);
 
     virtual void restoreFromLocalMap(const QMap<QString, QVariant> &map);
     virtual void storeIntoLocalMap(QMap<QString, QVariant> &map);
 
 signals:
-    void changed();
+    void userArgumentsChanged();
 
 protected:
     virtual void processStartupFailed();
@@ -115,7 +115,7 @@ public:
 private slots:
     void qmakeArgumentsLineEditTextEdited();
     void buildConfigurationChanged();
-    void update();
+    void userArgumentsChanged();
     void qtVersionChanged();
 private:
     void updateTitleLabel();
@@ -123,6 +123,7 @@ private:
     Ui::QMakeStep m_ui;
     QMakeStep *m_step;
     QString m_summaryText;
+    bool m_ignoreChange;
 };
 
 } // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 88d2afad29758b9b11f56a1a645627ff2b164246..9fafc02dd52ebccd1b1ca770a87f8cc664a03ac2 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -476,7 +476,7 @@ Qt4BuildConfiguration *Qt4Project::addQt4BuildConfiguration(QString displayName,
     cleanStep->setClean(true);
     bc->insertCleanStep(0, cleanStep);
     if (!additionalArguments.isEmpty())
-        qmakeStep->setQMakeArguments(additionalArguments);
+        qmakeStep->setUserArguments(additionalArguments);
 
     // set some options for qmake and make
     if (qmakeBuildConfiguration & QtVersion::BuildAll) // debug_and_release => explicit targets
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index f97ae476e5dc81f593e865c2c7a7549b82d64651..fb9ba63807c6070dfb855149e664143945f533ef 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -298,7 +298,7 @@ void Qt4ProjectConfigWidget::importLabelClicked()
             // Combo box will be updated at the end
 
             QMakeStep *qmakeStep = m_buildConfiguration->qmakeStep();
-            qmakeStep->setQMakeArguments(additionalArguments);
+            qmakeStep->setUserArguments(additionalArguments);
             MakeStep *makeStep = m_buildConfiguration->makeStep();
 
             m_buildConfiguration->setValue("buildConfiguration", int(qmakeBuildConfig));