diff --git a/src/libs/utils/debuggerlanguagechooser.cpp b/src/libs/utils/debuggerlanguagechooser.cpp
index 22d5d50603cd6c292c1b26df3fe855b8857d5a23..c150ac6bfda4d798addf1baeae6408e1562a9738 100644
--- a/src/libs/utils/debuggerlanguagechooser.cpp
+++ b/src/libs/utils/debuggerlanguagechooser.cpp
@@ -2,24 +2,61 @@
 
 #include <QHBoxLayout>
 #include <QCheckBox>
+#include <QSpinBox>
+#include <QLabel>
 
 namespace Utils {
 
 DebuggerLanguageChooser::DebuggerLanguageChooser(QWidget *parent) :
     QWidget(parent)
 {
-    QHBoxLayout *layout = new QHBoxLayout(this);
-    setLayout(layout);
     m_useCppDebugger = new QCheckBox(tr("C++"), this);
     m_useQmlDebugger = new QCheckBox(tr("QML"), this);
-    layout->setMargin(0);
-    layout->addWidget(m_useCppDebugger);
-    layout->addWidget(m_useQmlDebugger);
 
     connect(m_useCppDebugger, SIGNAL(toggled(bool)),
             this, SLOT(useCppDebuggerToggled(bool)));
     connect(m_useQmlDebugger, SIGNAL(toggled(bool)),
             this, SLOT(useQmlDebuggerToggled(bool)));
+
+    m_debugServerPortLabel = new QLabel(tr("Debug Port:"), this);
+    m_debugServerPort = new QSpinBox(this);
+    m_debugServerPort->setMinimum(1);
+    m_debugServerPort->setMaximum(65535);
+
+    m_debugServerPortLabel->setBuddy(m_debugServerPort);
+
+    connect(m_useQmlDebugger, SIGNAL(toggled(bool)), m_debugServerPort, SLOT(setEnabled(bool)));
+    connect(m_useQmlDebugger, SIGNAL(toggled(bool)), m_debugServerPortLabel, SLOT(setEnabled(bool)));
+    connect(m_debugServerPort, SIGNAL(valueChanged(int)), this, SIGNAL(qmlDebugServerPortChanged(uint)));
+
+    QHBoxLayout *qmlLayout = new QHBoxLayout;
+    qmlLayout->setMargin(0);
+    qmlLayout->addWidget(m_useQmlDebugger);
+    qmlLayout->addWidget(m_debugServerPortLabel);
+    qmlLayout->addWidget(m_debugServerPort);
+    qmlLayout->addStretch();
+
+    QVBoxLayout *layout = new QVBoxLayout;
+    layout->setMargin(0);
+    layout->addWidget(m_useCppDebugger);
+    layout->addLayout(qmlLayout);
+
+    setLayout(layout);
+}
+
+bool DebuggerLanguageChooser::cppChecked() const
+{
+    return m_useCppDebugger->isChecked();
+}
+
+bool DebuggerLanguageChooser::qmlChecked() const
+{
+    return m_useQmlDebugger->isChecked();
+}
+
+uint DebuggerLanguageChooser::qmlDebugServerPort() const
+{
+    return m_debugServerPort->value();
 }
 
 void DebuggerLanguageChooser::setCppChecked(bool value)
@@ -30,6 +67,13 @@ void DebuggerLanguageChooser::setCppChecked(bool value)
 void DebuggerLanguageChooser::setQmlChecked(bool value)
 {
     m_useQmlDebugger->setChecked(value);
+    m_debugServerPortLabel->setEnabled(value);
+    m_debugServerPort->setEnabled(value);
+}
+
+void DebuggerLanguageChooser::setQmlDebugServerPort(uint port)
+{
+    m_debugServerPort->setValue(port);
 }
 
 void DebuggerLanguageChooser::useCppDebuggerToggled(bool toggled)
diff --git a/src/libs/utils/debuggerlanguagechooser.h b/src/libs/utils/debuggerlanguagechooser.h
index 6e03d7aac2f54e793fadaf12f67b117c728bc519..fa45af4d64a6d8204c275cffb8e9fe162da22956 100644
--- a/src/libs/utils/debuggerlanguagechooser.h
+++ b/src/libs/utils/debuggerlanguagechooser.h
@@ -5,6 +5,8 @@
 #include "utils_global.h"
 
 QT_FORWARD_DECLARE_CLASS(QCheckBox);
+QT_FORWARD_DECLARE_CLASS(QLabel);
+QT_FORWARD_DECLARE_CLASS(QSpinBox);
 
 namespace Utils {
 
@@ -14,12 +16,18 @@ class QTCREATOR_UTILS_EXPORT DebuggerLanguageChooser : public QWidget
 public:
     explicit DebuggerLanguageChooser(QWidget *parent = 0);
 
+    bool cppChecked() const;
+    bool qmlChecked() const;
+    uint qmlDebugServerPort() const;
+
     void setCppChecked(bool value);
     void setQmlChecked(bool value);
+    void setQmlDebugServerPort(uint port);
 
 signals:
     void cppLanguageToggled(bool value);
     void qmlLanguageToggled(bool value);
+    void qmlDebugServerPortChanged(uint port);
 
 private slots:
     void useCppDebuggerToggled(bool toggled);
@@ -28,6 +36,8 @@ private slots:
 private:
     QCheckBox *m_useCppDebugger;
     QCheckBox *m_useQmlDebugger;
+    QSpinBox *m_debugServerPort;
+    QLabel *m_debugServerPortLabel;
 };
 
 } // namespace Utils
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index c73fd0b283f1f86b1322c7cae7739fc7aceaf346..ff3319eb11d96fc69d05ac1f189e1dc4618627f9 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -353,6 +353,7 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
 
     m_debuggerLanguageChooser->setCppChecked(m_cmakeRunConfiguration->useCppDebugger());
     m_debuggerLanguageChooser->setQmlChecked(m_cmakeRunConfiguration->useQmlDebugger());
+    m_debuggerLanguageChooser->setQmlDebugServerPort(m_cmakeRunConfiguration->qmlDebugServerPort());
 
     m_detailsContainer = new Utils::DetailsWidget(this);
     m_detailsContainer->setState(Utils::DetailsWidget::NoSummary);
@@ -406,6 +407,8 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
             this, SLOT(useCppDebuggerToggled(bool)));
     connect(m_debuggerLanguageChooser, SIGNAL(qmlLanguageToggled(bool)),
             this, SLOT(useQmlDebuggerToggled(bool)));
+    connect(m_debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
+            this, SLOT(qmlDebugServerPortChanged(uint)));
 
     connect(m_environmentWidget, SIGNAL(userChangesChanged()),
             this, SLOT(userChangesChanged()));
@@ -451,6 +454,11 @@ void CMakeRunConfigurationWidget::useQmlDebuggerToggled(bool toggled)
     m_cmakeRunConfiguration->setUseQmlDebugger(toggled);
 }
 
+void CMakeRunConfigurationWidget::qmlDebugServerPortChanged(uint port)
+{
+    m_cmakeRunConfiguration->setQmlDebugServerPort(port);
+}
+
 void CMakeRunConfigurationWidget::userChangesChanged()
 {
     m_cmakeRunConfiguration->setUserEnvironmentChanges(m_environmentWidget->userChanges());
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
index 82c512f94e5b427a1c8b7c5ab5b62addf1f8fae6..07d982251efbde395eeeb5b4d8b6a9657e7056ea 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -143,6 +143,7 @@ private slots:
     void resetWorkingDirectory();
     void useCppDebuggerToggled(bool toggled);
     void useQmlDebuggerToggled(bool toggled);
+    void qmlDebugServerPortChanged(uint port);
 
 private slots:
     void baseEnvironmentComboBoxChanged(int index);
diff --git a/src/plugins/debugger/debuggerconstants.h b/src/plugins/debugger/debuggerconstants.h
index 9a3e379a8eff9da877a2470f3b0434cc72e19574..df443e9b83cf31dac392f91e8fc3d958158fd91a 100644
--- a/src/plugins/debugger/debuggerconstants.h
+++ b/src/plugins/debugger/debuggerconstants.h
@@ -62,7 +62,6 @@ const char * const DEBUGGER_SETTINGS_TR_CATEGORY =
 const char * const DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON =
     ":/core/images/category_debug.png";
 
-const int QML_DEFAULT_DEBUG_SERVER_PORT = 3768;
 const char * const E_QML_DEBUG_SERVER_PORT = "QML_DEBUG_SERVER_PORT";
 
 // dock widget names
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 64f7373539d5a1937b16ced5b261cc2c57739d74..4bca46849aea47f88d7141cf0635599e9cb72b3c 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -110,7 +110,7 @@ DebuggerStartParameters::DebuggerStartParameters()
     useTerminal(false),
     breakAtMain(false),
     qmlServerAddress("127.0.0.1"),
-    qmlServerPort(Constants::QML_DEFAULT_DEBUG_SERVER_PORT),
+    qmlServerPort(0),
     toolChainType(ToolChain::UNKNOWN),
     startMode(NoStartMode),
     executableUid(0)
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index ea8e1071376a118b361fddd8a4d1bc1eff7d2a1c..0f80b683dbe887b4009312e5c5d5d2e6b2096f96 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -154,9 +154,7 @@ static DebuggerStartParameters localStartParameters(RunConfiguration *runConfigu
     DebuggerLanguages activeLangs = DebuggerUISwitcher::instance()->activeDebugLanguages();
     if (activeLangs & QmlLanguage) {
         sp.qmlServerAddress = QLatin1String("127.0.0.1");
-        sp.qmlServerPort = rc->environment().value("QML_DEBUG_SERVER_PORT").toUInt();
-        if (sp.qmlServerPort == 0)
-            sp.qmlServerPort = Constants::QML_DEFAULT_DEBUG_SERVER_PORT;
+        sp.qmlServerPort = runConfiguration->qmlDebugServerPort();
 
         sp.environment << QString(Constants::E_QML_DEBUG_SERVER_PORT)
                         + QLatin1Char('=') + QString::number(sp.qmlServerPort);
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
index 099100f7c9270081ae3819a8d97bf247c0f8bf5b..e69dfbe2d9e8b7d334fb25dcfa619a063ba4a9c2 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
@@ -109,6 +109,7 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
 
     m_debuggerLanguageChooser->setCppChecked(m_runConfiguration->useCppDebugger());
     m_debuggerLanguageChooser->setQmlChecked(m_runConfiguration->useQmlDebugger());
+    m_debuggerLanguageChooser->setQmlDebugServerPort(m_runConfiguration->qmlDebugServerPort());
 
     QVBoxLayout *vbox = new QVBoxLayout(this);
     vbox->setMargin(0);
@@ -166,6 +167,8 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
             this, SLOT(useCppDebuggerToggled(bool)));
     connect(m_debuggerLanguageChooser, SIGNAL(qmlLanguageToggled(bool)),
             this, SLOT(useQmlDebuggerToggled(bool)));
+    connect(m_debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
+            this, SLOT(qmlDebugServerPortChanged(uint)));
 
     connect(m_runConfiguration, SIGNAL(changed()), this, SLOT(changed()));
 
@@ -203,6 +206,11 @@ void CustomExecutableConfigurationWidget::useQmlDebuggerToggled(bool toggled)
     m_runConfiguration->setUseQmlDebugger(toggled);
 }
 
+void CustomExecutableConfigurationWidget::qmlDebugServerPortChanged(uint port)
+{
+    m_runConfiguration->setQmlDebugServerPort(port);
+}
+
 void CustomExecutableConfigurationWidget::baseEnvironmentChanged()
 {
     if (m_ignoreChange)
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
index 704b25516f1fd529e978c9d606275efb1476f64b..2ec71a2617691bfd9e257591823b0ba8944d1363 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
@@ -187,6 +187,7 @@ private slots:
     void baseEnvironmentSelected(int index);
     void useCppDebuggerToggled(bool toggled);
     void useQmlDebuggerToggled(bool toggled);
+    void qmlDebugServerPortChanged(uint port);
 
 private:
     bool m_ignoreChange;
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index 890735ea47827c31b48c5a7d370f357b443dab70..64ba865db33373a9d9c564b78712961ba1d6d7a0 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -217,6 +217,9 @@ const char * const BUILDSTEPS_DEPLOY = "ProjectExplorer.BuildSteps.Deploy";
 // Deploy Configuration id:
 const char * const DEFAULT_DEPLOYCONFIGURATION_ID = "ProjectExplorer.DefaultDeployConfiguration";
 
+// Run Configuration defaults:
+const int QML_DEFAULT_DEBUG_SERVER_PORT = 3768;
+
 } // namespace Constants
 } // namespace ProjectExplorer
 
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 1e854ecfcca56ce5fd41c74d4a9b5a27b832a134..b23d3d8e660914a9c64951da3ab8d600f22e4b85 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -33,6 +33,7 @@
 #include "project.h"
 #include "target.h"
 #include "buildconfiguration.h"
+#include "projectexplorerconstants.h"
 
 #include <extensionsystem/pluginmanager.h>
 #include <coreplugin/icore.h>
@@ -54,6 +55,7 @@ namespace {
 
 const char * const USE_CPP_DEBUGGER_KEY("RunConfiguration.UseCppDebugger");
 const char * const USE_QML_DEBUGGER_KEY("RunConfiguration.UseQmlDebugger");
+const char * const QML_DEBUG_SERVER_PORT_KEY("RunConfiguration.QmlDebugServerPort");
 
 class RunConfigurationFactoryMatcher
 {
@@ -146,7 +148,8 @@ IRunConfigurationFactory * findRunConfigurationFactory(RunConfigurationFactoryMa
 RunConfiguration::RunConfiguration(Target *target, const QString &id) :
     ProjectConfiguration(target, id),
     m_useCppDebugger(true),
-    m_useQmlDebugger(false)
+    m_useQmlDebugger(false),
+    m_qmlDebugServerPort(Constants::QML_DEFAULT_DEBUG_SERVER_PORT)
 {
     Q_ASSERT(target);
 }
@@ -209,11 +212,23 @@ bool RunConfiguration::useQmlDebugger() const
     return m_useQmlDebugger;
 }
 
+uint RunConfiguration::qmlDebugServerPort() const
+{
+    return m_qmlDebugServerPort;
+}
+
+void RunConfiguration::setQmlDebugServerPort(uint port)
+{
+    m_qmlDebugServerPort = port;
+    emit qmlDebugServerPortChanged(port);
+}
+
 QVariantMap RunConfiguration::toMap() const
 {
     QVariantMap map(ProjectConfiguration::toMap());
     map.insert(QLatin1String(USE_CPP_DEBUGGER_KEY), m_useCppDebugger);
     map.insert(QLatin1String(USE_QML_DEBUGGER_KEY), m_useQmlDebugger);
+    map.insert(QLatin1String(QML_DEBUG_SERVER_PORT_KEY), m_qmlDebugServerPort);
     return map;
 }
 
@@ -221,6 +236,7 @@ bool RunConfiguration::fromMap(const QVariantMap &map)
 {
     m_useCppDebugger = map.value(QLatin1String(USE_CPP_DEBUGGER_KEY), true).toBool();
     m_useQmlDebugger = map.value(QLatin1String(USE_QML_DEBUGGER_KEY), false).toBool();
+    m_qmlDebugServerPort = map.value(QLatin1String(QML_DEBUG_SERVER_PORT_KEY), Constants::QML_DEFAULT_DEBUG_SERVER_PORT).toUInt();
     return ProjectConfiguration::fromMap(map);
 }
 
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index 5cc172a20b72d40279c3086be42440b58cf99bbc..5047e38c19a38fb9699e6fdf0d0efe7aabb4acc9 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -91,11 +91,16 @@ public:
     void setUseCppDebugger(bool value);
     bool useQmlDebugger() const;
     bool useCppDebugger() const;
+
+    uint qmlDebugServerPort() const;
+    void setQmlDebugServerPort(uint port);
+
     virtual QVariantMap toMap() const;
 
 signals:
     void isEnabledChanged(bool value);
     void debuggersChanged();
+    void qmlDebugServerPortChanged(uint port);
 
 protected:
     RunConfiguration(Target *parent, const QString &id);
@@ -109,6 +114,7 @@ protected:
 private:
     bool m_useCppDebugger;
     bool m_useQmlDebugger;
+    uint m_qmlDebugServerPort;
 };
 
 /**
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanagerconstants.h b/src/plugins/qmlprojectmanager/qmlprojectmanagerconstants.h
index 7042a06b6886bfedbdd67783c2b0ef24f12cc7bf..ca170562014a02c82a5356bc0548cbcfdc2c1e33 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanagerconstants.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanagerconstants.h
@@ -39,10 +39,6 @@ const char * const QML_VIEWER_ARGUMENTS_KEY = "QmlProjectManager.QmlRunConfigura
 const char * const QML_VIEWER_TARGET_ID = "QmlProjectManager.QmlTarget";
 const char * const QML_VIEWER_TARGET_DISPLAY_NAME = "QML Viewer";
 const char * const QML_MAINSCRIPT_KEY = "QmlProjectManager.QmlRunConfiguration.MainScript";
-const char * const QML_DEBUG_SERVER_ADDRESS_KEY = "QmlProjectManager.QmlRunConfiguration.DebugServerAddress";
-const char * const QML_DEBUG_SERVER_PORT_KEY = "QmlProjectManager.QmlRunConfiguration.DebugServerPort";
-
-const int QML_DEFAULT_DEBUG_SERVER_PORT = 3768;
 
 } // namespace Constants
 } // namespace QmlProjectManager
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index 7d362325b26b1e12686b2acbdc805179760c4ed0..5ea2e730d569bf6127b22f1d5193bc4e6d91ff6e 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -55,12 +55,6 @@
 
 namespace QmlProjectManager {
 
-
-QmlProjectRunConfigurationDebugData::QmlProjectRunConfigurationDebugData() :
-        serverAddress("127.0.0.1"), serverPort(Constants::QML_DEFAULT_DEBUG_SERVER_PORT)
-{
-}
-
 QmlProjectRunConfiguration::QmlProjectRunConfiguration(Internal::QmlProjectTarget *parent) :
     ProjectExplorer::RunConfiguration(parent, QLatin1String(Constants::QML_RC_ID)),
     m_fileListModel(new QStringListModel(this)),
@@ -79,8 +73,6 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Internal::QmlProjectTarge
     m_projectTarget(parent)
 {
     ctor();
-    m_debugData.serverAddress = source->m_debugData.serverAddress;
-    m_debugData.serverPort = source->m_debugData.serverPort;
     setMainScript(source->m_scriptFile);
 }
 
@@ -112,11 +104,6 @@ QmlProjectRunConfiguration::~QmlProjectRunConfiguration()
 {
 }
 
-QString QmlProjectRunConfiguration::debugServerAddress() const
-{
-    return m_debugData.serverAddress;
-}
-
 Internal::QmlProjectTarget *QmlProjectRunConfiguration::qmlTarget() const
 {
     return static_cast<Internal::QmlProjectTarget *>(target());
@@ -156,11 +143,6 @@ QString QmlProjectRunConfiguration::workingDirectory() const
     return projectFile.absolutePath();
 }
 
-uint QmlProjectRunConfiguration::debugServerPort() const
-{
-    return m_debugData.serverPort;
-}
-
 static bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
 {
     return s1.toLower() < s2.toLower();
@@ -191,21 +173,9 @@ QWidget *QmlProjectRunConfiguration::createConfigurationWidget()
     qmlViewerArgs->setText(m_qmlViewerArgs);
     connect(qmlViewerArgs, SIGNAL(textChanged(QString)), this, SLOT(onViewerArgsChanged()));
 
-    QLineEdit *debugServer = new QLineEdit;
-    debugServer->setText(m_debugData.serverAddress);
-    connect(debugServer, SIGNAL(textChanged(QString)), this, SLOT(onDebugServerAddressChanged()));
-
-    QSpinBox *debugPort = new QSpinBox;
-    debugPort->setMinimum(1024); // valid registered/dynamic/free ports according to http://www.iana.org/assignments/port-numbers
-    debugPort->setMaximum(65535);
-    debugPort->setValue(m_debugData.serverPort);
-    connect(debugPort, SIGNAL(valueChanged(int)), this, SLOT(onDebugServerPortChanged()));
-
     form->addRow(tr("Custom QML Viewer:"), qmlViewer);
     form->addRow(tr("QML Viewer arguments:"), qmlViewerArgs);
     form->addRow(QString(), m_qmlViewerExecutable.data());
-    form->addRow(tr("Debugging Address:"), debugServer);
-    form->addRow(tr("Debugging Port:"), debugPort);
 
     QLabel *debuggerLabel = new QLabel(tr("Debugger:"), config);
     Utils::DebuggerLanguageChooser *debuggerLanguageChooser = new Utils::DebuggerLanguageChooser(config);
@@ -215,11 +185,14 @@ QWidget *QmlProjectRunConfiguration::createConfigurationWidget()
 
     debuggerLanguageChooser->setCppChecked(useCppDebugger());
     debuggerLanguageChooser->setQmlChecked(useQmlDebugger());
+    debuggerLanguageChooser->setQmlDebugServerPort(qmlDebugServerPort());
 
     connect(debuggerLanguageChooser, SIGNAL(cppLanguageToggled(bool)),
             this, SLOT(useCppDebuggerToggled(bool)));
     connect(debuggerLanguageChooser, SIGNAL(qmlLanguageToggled(bool)),
             this, SLOT(useQmlDebuggerToggled(bool)));
+    connect(debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
+            this, SLOT(qmlDebugServerPortChanged(uint)));
 
     return config;
 }
@@ -265,12 +238,6 @@ void QmlProjectRunConfiguration::updateFileComboBox()
         m_fileListCombo.data()->setCurrentIndex(0);
 }
 
-void QmlProjectRunConfiguration::onDebugServerAddressChanged()
-{
-    if (QLineEdit *lineEdit = qobject_cast<QLineEdit*>(sender()))
-        m_debugData.serverAddress = lineEdit->text();
-}
-
 void QmlProjectRunConfiguration::setMainScript(const QString &scriptFile)
 {
     m_scriptFile = scriptFile;
@@ -308,13 +275,6 @@ void QmlProjectRunConfiguration::onViewerArgsChanged()
     }
 }
 
-void QmlProjectRunConfiguration::onDebugServerPortChanged()
-{
-    if (QSpinBox *spinBox = qobject_cast<QSpinBox*>(sender())) {
-        m_debugData.serverPort = spinBox->value();
-    }
-}
-
 void QmlProjectRunConfiguration::useCppDebuggerToggled(bool toggled)
 {
     setUseCppDebugger(toggled);
@@ -325,6 +285,10 @@ void QmlProjectRunConfiguration::useQmlDebuggerToggled(bool toggled)
     setUseQmlDebugger(toggled);
 }
 
+void QmlProjectRunConfiguration::qmlDebugServerPortChanged(uint port)
+{
+    setQmlDebugServerPort(port);
+}
 
 QVariantMap QmlProjectRunConfiguration::toMap() const
 {
@@ -333,8 +297,6 @@ QVariantMap QmlProjectRunConfiguration::toMap() const
     map.insert(QLatin1String(Constants::QML_VIEWER_KEY), m_qmlViewerCustomPath);
     map.insert(QLatin1String(Constants::QML_VIEWER_ARGUMENTS_KEY), m_qmlViewerArgs);
     map.insert(QLatin1String(Constants::QML_MAINSCRIPT_KEY),  m_scriptFile);
-    map.insert(QLatin1String(Constants::QML_DEBUG_SERVER_PORT_KEY), m_debugData.serverPort);
-    map.insert(QLatin1String(Constants::QML_DEBUG_SERVER_ADDRESS_KEY), m_debugData.serverAddress);
     return map;
 }
 
@@ -343,8 +305,6 @@ bool QmlProjectRunConfiguration::fromMap(const QVariantMap &map)
     m_qmlViewerCustomPath = map.value(QLatin1String(Constants::QML_VIEWER_KEY)).toString();
     m_qmlViewerArgs = map.value(QLatin1String(Constants::QML_VIEWER_ARGUMENTS_KEY)).toString();
     m_scriptFile = map.value(QLatin1String(Constants::QML_MAINSCRIPT_KEY), M_CURRENT_FILE).toString();
-    m_debugData.serverPort = map.value(QLatin1String(Constants::QML_DEBUG_SERVER_PORT_KEY), Constants::QML_DEFAULT_DEBUG_SERVER_PORT).toUInt();
-    m_debugData.serverAddress = map.value(QLatin1String(Constants::QML_DEBUG_SERVER_ADDRESS_KEY), QLatin1String("127.0.0.1")).toString();
     setMainScript(m_scriptFile);
 
     return RunConfiguration::fromMap(map);
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
index f7f5c29b02b3388f0e77cdc6cc9549e17390f9b3..c55f5a5a3a2f7c5c3eeeb7c69ff72f8da77c58c7 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
@@ -54,13 +54,6 @@ const char * const CURRENT_FILE  = QT_TRANSLATE_NOOP("QmlManager", "<Current Fil
 const char * const M_CURRENT_FILE  = "CurrentFile";
 
 
-class QMLPROJECTMANAGER_EXPORT QmlProjectRunConfigurationDebugData {
-public:
-    QmlProjectRunConfigurationDebugData();
-    QString serverAddress;
-    quint16 serverPort;
-};
-
 class QMLPROJECTMANAGER_EXPORT QmlProjectRunConfiguration : public ProjectExplorer::RunConfiguration
 {
     Q_OBJECT
@@ -77,8 +70,6 @@ public:
     QString viewerPath() const;
     QStringList viewerArguments() const;
     QString workingDirectory() const;
-    QString debugServerAddress() const;
-    uint debugServerPort() const;
 
     // RunConfiguration
     virtual QWidget *createConfigurationWidget();
@@ -97,10 +88,9 @@ private slots:
 
     void onViewerChanged();
     void onViewerArgsChanged();
-    void onDebugServerAddressChanged();
-    void onDebugServerPortChanged();
     void useCppDebuggerToggled(bool toggled);
     void useQmlDebuggerToggled(bool toggled);
+    void qmlDebugServerPortChanged(uint port);
 
 protected:
     QString viewerDefaultPath() const;
@@ -119,7 +109,6 @@ private:
     QString m_scriptFile;
     QString m_qmlViewerCustomPath;
     QString m_qmlViewerArgs;
-    QmlProjectRunConfigurationDebugData m_debugData;
 
     QStringListModel *m_fileListModel;
     // weakpointer is used to make sure we don't try to manipulate
diff --git a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
index 094151ff42ede9fbe2494415eee2554b226ff650..fa57e508e348eaf1406557bea5ebb44611eaf6ef 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
@@ -57,8 +57,6 @@ QmlRunControl::QmlRunControl(QmlProjectRunConfiguration *runConfiguration, QStri
     : RunControl(runConfiguration, mode)
 {
     ProjectExplorer::Environment environment = ProjectExplorer::Environment::systemEnvironment();
-    if (runMode() == ProjectExplorer::Constants::DEBUGMODE)
-        environment.set(QmlProjectManager::Constants::E_QML_DEBUG_SERVER_PORT, QString::number(runConfiguration->debugServerPort()));
 
     m_applicationLauncher.setEnvironment(environment.toStringList());
     m_applicationLauncher.setWorkingDirectory(runConfiguration->workingDirectory());
@@ -176,13 +174,12 @@ QWidget *QmlRunControlFactory::createConfigurationWidget(RunConfiguration *runCo
 ProjectExplorer::RunControl *QmlRunControlFactory::createDebugRunControl(QmlProjectRunConfiguration *runConfig)
 {
     ProjectExplorer::Environment environment = ProjectExplorer::Environment::systemEnvironment();
-    environment.set(QmlProjectManager::Constants::E_QML_DEBUG_SERVER_PORT, QString::number(runConfig->debugServerPort()));
-
+    environment.set(Debugger::Constants::E_QML_DEBUG_SERVER_PORT, QString::number(runConfig->qmlDebugServerPort()));
     Debugger::DebuggerStartParameters params;
     params.startMode = Debugger::StartInternal;
     params.executable = runConfig->viewerPath();
-    params.qmlServerAddress = runConfig->debugServerAddress();
-    params.qmlServerPort = runConfig->debugServerPort();
+    params.qmlServerAddress = "127.0.0.1";
+    params.qmlServerPort = runConfig->qmlDebugServerPort();
     params.processArgs = runConfig->viewerArguments();
     params.workingDirectory = runConfig->workingDirectory();
     params.environment = environment.toStringList();
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index 918881a31c46bbff20b7cf30c0a78d3a17b41db2..72e0ac5722f49a8fc85b841dc4b2d10df8eb2dc7 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -230,6 +230,7 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
 
     m_debuggerLanguageChooser->setCppChecked(m_qt4RunConfiguration->useCppDebugger());
     m_debuggerLanguageChooser->setQmlChecked(m_qt4RunConfiguration->useQmlDebugger());
+    m_debuggerLanguageChooser->setQmlDebugServerPort(m_qt4RunConfiguration->qmlDebugServerPort());
 
 #ifdef Q_OS_MAC
     m_usingDyldImageSuffix = new QCheckBox(tr("Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug)"), this);
@@ -285,6 +286,8 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
             this, SLOT(useCppDebuggerToggled(bool)));
     connect(m_debuggerLanguageChooser, SIGNAL(qmlLanguageToggled(bool)),
             this, SLOT(useQmlDebuggerToggled(bool)));
+    connect(m_debuggerLanguageChooser, SIGNAL(qmlDebugServerPortChanged(uint)),
+            this, SLOT(qmlDebugServerPortChanged(uint)));
 
     connect(m_environmentWidget, SIGNAL(userChangesChanged()),
             this, SLOT(userChangesEdited()));
@@ -322,6 +325,11 @@ void Qt4RunConfigurationWidget::useQmlDebuggerToggled(bool toggled)
     m_qt4RunConfiguration->setUseQmlDebugger(toggled);
 }
 
+void Qt4RunConfigurationWidget::qmlDebugServerPortChanged(uint port)
+{
+    m_qt4RunConfiguration->setQmlDebugServerPort(port);
+}
+
 void Qt4RunConfigurationWidget::baseEnvironmentSelected(int index)
 {
     m_ignoreChange = true;
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt4runconfiguration.h
index 82bd1aa93cb654b289b72e15560fcda7fd9939c7..9c4903404cdcb0734f13f9e01c52bc5df8bb0aa7 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.h
@@ -88,6 +88,7 @@ public:
 
     bool isUsingDyldImageSuffix() const;
     void setUsingDyldImageSuffix(bool state);
+
     QString proFilePath() const;
 
     // TODO detectQtShadowBuild() ? how did this work ?
@@ -175,6 +176,7 @@ private slots:
     void baseEnvironmentSelected(int index);
     void useCppDebuggerToggled(bool toggled);
     void useQmlDebuggerToggled(bool toggled);
+    void qmlDebugServerPortChanged(uint port);
 
 private:
     Qt4RunConfiguration *m_qt4RunConfiguration;
@@ -184,6 +186,7 @@ private:
     QLineEdit *m_argumentsLineEdit;
     QCheckBox *m_useTerminalCheck;
     QCheckBox *m_usingDyldImageSuffix;
+    QLineEdit *m_qmlDebugPort;
 
     QComboBox *m_baseEnvironmentComboBox;
     Utils::DetailsWidget *m_detailsContainer;