diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 0f10b3f33978996f1346d4174de90096ea71ed24..b8b3b309a594b5f1e97081a75c299ed98979809e 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -109,6 +109,7 @@ public:
     void clear();
 
     QString executable;
+    QString displayName;
     QString coreFile;
     QStringList processArgs;
     QStringList environment;
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 928922f7159cde73c7df0bece9ef2d4da8a33172..9e44c69257247d2d5f9720c29e4694b189a3b0bd 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -52,6 +52,7 @@
 #include <coreplugin/findplaceholder.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/icorelistener.h>
+#include <coreplugin/manhattanstyle.h>
 #include <coreplugin/messagemanager.h>
 #include <coreplugin/minisplitter.h>
 #include <coreplugin/modemanager.h>
@@ -66,11 +67,11 @@
 
 #include <extensionsystem/pluginmanager.h>
 
-#include <coreplugin/manhattanstyle.h>
+#include <projectexplorer/project.h>
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/session.h>
-#include <projectexplorer/project.h>
+#include <projectexplorer/toolchain.h>
 
 #include <texteditor/basetexteditor.h>
 #include <texteditor/basetextmark.h>
@@ -1520,6 +1521,7 @@ void DebuggerPlugin::attachCore(const QString &core, const QString &exe)
     const DebuggerStartParametersPtr sp(new DebuggerStartParameters);
     sp->executable = exe;
     sp->coreFile = core;
+    sp->displayName = tr("Core file: \"%1\"").arg(core);
     sp->startMode = AttachCore;
     if (RunControl *runControl = m_debuggerRunControlFactory->create(sp))
         ProjectExplorerPlugin::instance()->
@@ -1560,6 +1562,7 @@ void DebuggerPlugin::startRemoteApplication()
     sp->remoteChannel = dlg.remoteChannel();
     sp->remoteArchitecture = dlg.remoteArchitecture();
     sp->executable = dlg.localExecutable();
+    sp->displayName = dlg.localExecutable();
     sp->debuggerCommand = dlg.debugger(); // Override toolchain-detection.
     if (!sp->debuggerCommand.isEmpty())
         sp->toolChainType = ProjectExplorer::ToolChain::INVALID;
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index 200eab0ed26f15e0ddee10dc0c271a4b4d30606c..c84f5a6c13f8fa471e9f86e66ae3814101778b4b 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -35,6 +35,7 @@
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/target.h>
 #include <projectexplorer/buildconfiguration.h>
+#include <projectexplorer/applicationrunconfiguration.h> // For LocalApplication*
 
 #include <utils/qtcassert.h>
 #include <coreplugin/icore.h>
@@ -90,6 +91,7 @@ static DebuggerStartParametersPtr localStartParameters(RunConfiguration *runConf
     sp->useTerminal = rc->runMode() == LocalApplicationRunConfiguration::Console;
     sp->dumperLibrary = rc->dumperLibrary();
     sp->dumperLibraryLocations = rc->dumperLibraryLocations();
+    sp->displayName = rc->displayName();
 
     // Find qtInstallPath.
     QString qmakePath = DebuggingHelperLibrary::findSystemQt(rc->environment());
@@ -112,12 +114,12 @@ RunControl *DebuggerRunControlFactory::create(RunConfiguration *runConfiguration
 {
     QTC_ASSERT(mode == ProjectExplorer::Constants::DEBUGMODE, return 0);
     DebuggerStartParametersPtr sp = localStartParameters(runConfiguration);
-    return new DebuggerRunControl(m_manager, sp, runConfiguration);
+    return new DebuggerRunControl(m_manager, sp);
 }
 
 RunControl *DebuggerRunControlFactory::create(const DebuggerStartParametersPtr &sp)
 {
-    return new DebuggerRunControl(m_manager, sp, 0);
+    return new DebuggerRunControl(m_manager, sp);
 }
 
 QWidget *DebuggerRunControlFactory::createConfigurationWidget(RunConfiguration *runConfiguration)
@@ -136,14 +138,25 @@ QWidget *DebuggerRunControlFactory::createConfigurationWidget(RunConfiguration *
 ////////////////////////////////////////////////////////////////////////
 
 DebuggerRunControl::DebuggerRunControl(DebuggerManager *manager,
-        const DebuggerStartParametersPtr &startParameters,
-        RunConfiguration *runConfiguration)
-    : RunControl(runConfiguration, ProjectExplorer::Constants::DEBUGMODE),
+        const DebuggerStartParametersPtr &startParameters)
+    : RunControl(0, ProjectExplorer::Constants::DEBUGMODE),
       m_startParameters(startParameters),
       m_manager(manager),
       m_running(false)
 {
-    init();
+    connect(m_manager, SIGNAL(debuggingFinished()),
+            this, SLOT(debuggingFinished()),
+            Qt::QueuedConnection);
+    connect(m_manager, SIGNAL(applicationOutputAvailable(QString, bool)),
+            this, SLOT(slotAddToOutputWindowInline(QString, bool)),
+            Qt::QueuedConnection);
+    connect(m_manager, SIGNAL(messageAvailable(QString, bool)),
+            this, SLOT(slotMessageAvailable(QString, bool)));
+    connect(m_manager, SIGNAL(inferiorPidChanged(qint64)),
+            this, SLOT(bringApplicationToForeground(qint64)),
+            Qt::QueuedConnection);
+    connect(this, SIGNAL(stopRequested()),
+            m_manager, SLOT(exitDebugger()));
 
     if (m_startParameters->environment.empty())
         m_startParameters->environment = ProjectExplorer::Environment().toStringList();
@@ -152,7 +165,7 @@ DebuggerRunControl::DebuggerRunControl(DebuggerManager *manager,
 
 QString DebuggerRunControl::displayName() const
 {
-    return tr("Core file: \"%1\"").arg(m_startParameters->coreFile);
+    return m_startParameters->displayName;
 }
 
 void DebuggerRunControl::setCustomEnvironment(ProjectExplorer::Environment env)
@@ -162,19 +175,6 @@ void DebuggerRunControl::setCustomEnvironment(ProjectExplorer::Environment env)
 
 void DebuggerRunControl::init()
 {
-    connect(m_manager, SIGNAL(debuggingFinished()),
-            this, SLOT(debuggingFinished()),
-            Qt::QueuedConnection);
-    connect(m_manager, SIGNAL(applicationOutputAvailable(QString, bool)),
-            this, SLOT(slotAddToOutputWindowInline(QString, bool)),
-            Qt::QueuedConnection);
-    connect(m_manager, SIGNAL(messageAvailable(QString, bool)),
-            this, SLOT(slotMessageAvailable(QString, bool)));
-    connect(m_manager, SIGNAL(inferiorPidChanged(qint64)),
-            this, SLOT(bringApplicationToForeground(qint64)),
-            Qt::QueuedConnection);
-    connect(this, SIGNAL(stopRequested()),
-            m_manager, SLOT(exitDebugger()));
 }
 
 void DebuggerRunControl::start()
diff --git a/src/plugins/debugger/debuggerrunner.h b/src/plugins/debugger/debuggerrunner.h
index 5660e170304761a2d184ffdbb89790f128bc986c..1e1d58a29fed23bd1e5885668d150722d623c7b5 100644
--- a/src/plugins/debugger/debuggerrunner.h
+++ b/src/plugins/debugger/debuggerrunner.h
@@ -33,7 +33,10 @@
 #include "debuggermanager.h"
 #include "debugger_global.h"
 #include <projectexplorer/runconfiguration.h>
-#include <projectexplorer/applicationrunconfiguration.h>
+
+namespace ProjectExplorer {
+    class Environment;
+}
 
 namespace Debugger {
 namespace Internal {
@@ -59,7 +62,6 @@ public:
     ProjectExplorer::RunControl *create(const DebuggerStartParametersPtr &sp);
 
 private:
-    DebuggerStartParametersPtr m_startParameters;
     DebuggerManager *m_manager;
 };
 
@@ -70,11 +72,8 @@ class DEBUGGER_EXPORT DebuggerRunControl
     Q_OBJECT
 
 public:
-    // startParameters are primary. If the user code has a RunConfiguration
-    // (like the 'standard' LocalRunConfiguration), it should pass it so
-    // we can pass it down to the ProjectExplorer::RunControl constructor.
-    DebuggerRunControl(DebuggerManager *manager, const DebuggerStartParametersPtr &startParameters,
-                       ProjectExplorer::RunConfiguration *runConfiguration =  0);
+    DebuggerRunControl(DebuggerManager *manager,
+                       const DebuggerStartParametersPtr &startParameters);
 
     void setCustomEnvironment(ProjectExplorer::Environment env);
 
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 3ff65a1dfe523d970af7e196a358422840a36b25..8ed9eb5d65420824d637ae61cb2a14e47be52d4d 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -378,6 +378,9 @@ void QmlEngine::startDebugging()
 void QmlEngine::postCommand(const QByteArray &cmd,
     QmlCommandCallback callback, const char *callbackName)
 {
+    Q_UNUSED(cmd);
+    Q_UNUSED(callback);
+    Q_UNUSED(callbackName);
 /*
     static int token = 20;
     ++token;
@@ -411,6 +414,7 @@ void QmlEngine::postCommand(const QByteArray &cmd,
 // already too late when we get a flow control packet
 void QmlEngine::enqueueCommand(const QmlCommand &cmd)
 {
+    Q_UNUSED(cmd);
 /*
 #ifdef USE_CONGESTION_CONTROL
     // congestion controled