diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp
index 5869de1660e0da67a57915bab540954b370ec613..cdcee60e13ce2aab244f3294d7e0495bac0bfd8b 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.cpp
+++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp
@@ -355,16 +355,26 @@ void CdbDebugEngine::startDebugger(const QSharedPointer<DebuggerStartParameters>
         emit startFailed();
         return;
     }
+    switch (sp->startMode) {
+    case AttachCore:
+    case StartRemote:
+        warning(QLatin1String("Internal error: Mode not supported."));
+        setState(AdapterStartFailed, Q_FUNC_INFO, __LINE__);
+        emit startFailed();
+        break;
+    default:
+        break;
+    }
+    m_d->m_mode = sp->startMode;
     m_d->clearDisplay();
     m_d->m_inferiorStartupComplete = false;
     setState(AdapterStarted, Q_FUNC_INFO, __LINE__);
 
     m_d->setVerboseSymbolLoading(m_d->m_options->verboseSymbolLoading);
-    const DebuggerStartMode mode = sp->startMode;
     // Figure out dumper. @TODO: same in gdb...
     const QString dumperLibName = QDir::toNativeSeparators(manager()->qtDumperLibraryName());
-    bool dumperEnabled = mode != AttachCore
-                         && mode != AttachCrashedExternal
+    bool dumperEnabled = m_d->m_mode != AttachCore
+                         && m_d->m_mode != AttachCrashedExternal
                          && manager()->qtDumperLibraryEnabled();
     if (dumperEnabled) {
         const QFileInfo fi(dumperLibName);
@@ -387,10 +397,10 @@ void CdbDebugEngine::startDebugger(const QSharedPointer<DebuggerStartParameters>
     m_d->clearForRun();
     m_d->updateCodeLevel();
     m_d->m_ignoreInitialBreakPoint = false;
-    switch (mode) {
+    switch (m_d->m_mode) {
     case AttachExternal:
     case AttachCrashedExternal:
-        rc = m_d->startAttachDebugger(sp->attachPID, mode, &errorMessage);
+        rc = startAttachDebugger(sp->attachPID, m_d->m_mode, &errorMessage);
         needWatchTimer = true; // Fetch away module load, etc. even if crashed
         break;
     case StartInternal:
@@ -408,7 +418,11 @@ void CdbDebugEngine::startDebugger(const QSharedPointer<DebuggerStartParameters>
             // continues in slotConsoleStubStarted()...
         } else {
             needWatchTimer = true;
-            rc = startDebuggerWithExecutable(mode, &errorMessage);
+            rc = m_d->startDebuggerWithExecutable(sp->workingDir,
+                                                  sp->executable,
+                                                  sp->processArgs,
+                                                  sp->environment,
+                                                  &errorMessage);
         }
         break;
     case AttachCore:
@@ -439,23 +453,7 @@ bool CdbDebugEngine::startAttachDebugger(qint64 pid, DebuggerStartMode sm, QStri
     // there is no startup trap when attaching to a process that has been
     // running for a while. (see notifyException).
     const bool suppressInitialBreakPoint = sm != AttachCrashedExternal;
-    const bool rc = m_d->startAttachDebugger(pid, suppressInitialBreakPoint, errorMessage);
-    if (rc)
-        m_d->m_mode = sm;
-    return rc;
-}
-
-bool CdbDebugEngine::startDebuggerWithExecutable(DebuggerStartMode sm, QString *errorMessage)
-{
-    const QSharedPointer<DebuggerStartParameters> sp = manager()->startParameters();
-    const bool rc = m_d->startDebuggerWithExecutable(sp->workingDir,
-                                                     sp->executable,
-                                                     sp->processArgs,
-                                                     sp->environment,
-                                                     errorMessage);
-    if (rc)
-        m_d->m_mode = sm;
-    return rc;
+    return m_d->startAttachDebugger(pid, suppressInitialBreakPoint, errorMessage);
 }
 
 void CdbDebugEnginePrivate::processCreatedAttached(ULONG64 processHandle, ULONG64 initialThreadHandle)
diff --git a/src/plugins/debugger/cdb/cdbdebugengine.h b/src/plugins/debugger/cdb/cdbdebugengine.h
index d6f6bebb0198ffd8f17996c66c5a4d3a8379b5c6..4e229dbdb52b0a264b3943de8aa0ce1ef8c82283 100644
--- a/src/plugins/debugger/cdb/cdbdebugengine.h
+++ b/src/plugins/debugger/cdb/cdbdebugengine.h
@@ -114,7 +114,6 @@ private slots:
 private:
     void setState(DebuggerState state, const char *func, int line);
     inline bool startAttachDebugger(qint64 pid, DebuggerStartMode sm, QString *errorMessage);
-    inline bool startDebuggerWithExecutable(DebuggerStartMode sm, QString *errorMessage);
     void processTerminated(unsigned long exitCode);
     void evaluateWatcher(WatchData *wd);
     QString editorToolTip(const QString &exp, const QString &function);
diff --git a/src/plugins/debugger/cdb/symbolgroupcontext.cpp b/src/plugins/debugger/cdb/symbolgroupcontext.cpp
index 92c5a2099f1500d2c6f8df349dc45859bbba414c..98a7c72ecbbb8928662baad09d2315b4c539ba9f 100644
--- a/src/plugins/debugger/cdb/symbolgroupcontext.cpp
+++ b/src/plugins/debugger/cdb/symbolgroupcontext.cpp
@@ -37,7 +37,7 @@
 #include <QtCore/QDebug>
 
 enum { debug = 0 };
-enum { debugInternalDumpers = 1 };
+enum { debugInternalDumpers = 0 };
 
 // name separator for shadowed variables
 static const char iNameShadowDelimiter = '#';