diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 24609f446a2715fc697e63487a2dc790674e8e63..1cfd45bf4c7ce893babefbb1c6455af50aaebdbf 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -612,47 +612,74 @@ SourceFilesHandler *DebuggerEngine::sourceFilesHandler() const
 
 QAbstractItemModel *DebuggerEngine::modulesModel() const
 {
-    return d->m_modulesHandler.model();
+    QAbstractItemModel *model = d->m_modulesHandler.model();
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("ModulesModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::breakModel() const
 {
-    return d->m_breakHandler.model();
+    QAbstractItemModel *model = d->m_breakHandler.model();
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("BreakModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::registerModel() const
 {
-    return d->m_registerHandler.model();
+    QAbstractItemModel *model = d->m_registerHandler.model();
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("RegisterModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::stackModel() const
 {
-    return d->m_stackHandler.model();
+    QAbstractItemModel *model = d->m_stackHandler.model();
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("StackModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::threadsModel() const
 {
-    return d->m_threadsHandler.model();
+    QAbstractItemModel *model = d->m_threadsHandler.model();
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("ThreadsModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::localsModel() const
 {
-    return d->m_watchHandler.model(LocalsWatch);
+    QAbstractItemModel *model = d->m_watchHandler.model(LocalsWatch);
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("LocalsModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::watchersModel() const
 {
-    return d->m_watchHandler.model(WatchersWatch);
+    QAbstractItemModel *model = d->m_watchHandler.model(WatchersWatch);
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("WatchersModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::returnModel() const
 {
-    return d->m_watchHandler.model(ReturnWatch);
+    QAbstractItemModel *model = d->m_watchHandler.model(ReturnWatch);
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("ReturnModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::sourceFilesModel() const
 {
-    return d->m_sourceFilesHandler.model();
+    QAbstractItemModel *model = d->m_sourceFilesHandler.model();
+    if (model->objectName().isEmpty()) // Make debugging easier.
+        model->setObjectName(objectName() + QLatin1String("SourceFilesModel"));
+    return model;
 }
 
 QAbstractItemModel *DebuggerEngine::commandModel() const
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index eeea0e44e9fdb6e0ca7dc31851746e170293be2a..1d381ee8fa3eef4bc40f666419ca773b4eaf7ea7 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -2171,15 +2171,14 @@ void DebuggerPluginPrivate::setInitialState()
 
 void DebuggerPluginPrivate::updateState(DebuggerEngine *engine)
 {
-    //m_threadBox->setModel(engine->threadsModel());
-    //m_threadBox->setModel(engine->threadsModel());
+    QTC_ASSERT(engine != 0 && m_watchersWindow->model() != 0 && m_returnWindow->model() != 0, return);
     m_threadBox->setCurrentIndex(engine->threadsHandler()->currentThread());
+
     m_watchersWindow->setVisible(
         m_watchersWindow->model()->rowCount(QModelIndex()) > 0);
     m_returnWindow->setVisible(
         m_returnWindow->model()->rowCount(QModelIndex()) > 0);
 
-    QTC_ASSERT(engine, return);
     if (m_state == engine->state())
         return;
 
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index 7452fa91e21d4cbca90ad014c5f142a994a67909..7bd3107bfde34f4776d2c9472ba94a10ed92d3f5 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -189,7 +189,6 @@ DebuggerRunControl *DebuggerRunControlFactory::create(
         delete runControl;
         return 0;
     }
-    connect(runControl, SIGNAL(finished()), runControl, SLOT(handleFinished()));
     return runControl;
 }
 
@@ -209,13 +208,14 @@ QWidget *DebuggerRunControlFactory::createConfigurationWidget
 ////////////////////////////////////////////////////////////////////////
 
 DebuggerRunControl::DebuggerRunControl(RunConfiguration *runConfiguration,
-        DebuggerEngineType enabledEngines, const DebuggerStartParameters &sp)
-    : RunControl(runConfiguration, ProjectExplorer::Constants::DEBUGMODE),
-      m_myRunConfiguration(runConfiguration)
+        DebuggerEngineType enabledEngines, const DebuggerStartParameters &sp) :
+    RunControl(runConfiguration, ProjectExplorer::Constants::DEBUGMODE),
+    m_engine(0),
+    m_myRunConfiguration(runConfiguration),
+    m_running(false),
+    m_enabledEngines(enabledEngines)
 {
-    m_running = false;
-    m_enabledEngines = enabledEngines;
-    m_engine = 0;
+    connect(this, SIGNAL(finished()), this, SLOT(handleFinished()));
     createEngine(sp);
 }
 
@@ -336,9 +336,6 @@ void DebuggerRunControl::createEngine(const DebuggerStartParameters &sp)
 {
     // Figure out engine according to toolchain, executable, attach or default.
     DebuggerEngineType engineType = NoEngineType;
-    QString errorMessage;
-    QString settingsIdHint;
-
     bool isQmlExecutable = sp.executable.endsWith(_("qmlviewer")) || sp.executable.endsWith(_("qmlobserver"));
 #ifdef Q_OS_MAC
     isQmlExecutable = sp.executable.endsWith(_("QMLViewer.app")) || sp.executable.endsWith(_("QMLObserver.app"));
@@ -476,9 +473,9 @@ void DebuggerRunControl::start()
     plugin()->showMessage(message, StatusBar);
     plugin()->showMessage(DebuggerSettings::instance()->dump(), LogDebug);
 
+    plugin()->runControlStarted(this);
     engine()->startDebugger(this);
     m_running = true;
-    plugin()->runControlStarted(this);
     emit started();
 }