diff --git a/src/plugins/debugger/gdb/abstractgdbadapter.h b/src/plugins/debugger/gdb/abstractgdbadapter.h
index ba32496c0db1f2a5ea2c1257e98f5e2904226176..5f055ddfcf357cc30726f09303de5ec66f860b2b 100644
--- a/src/plugins/debugger/gdb/abstractgdbadapter.h
+++ b/src/plugins/debugger/gdb/abstractgdbadapter.h
@@ -81,12 +81,15 @@ public:
     virtual void setEnvironment(const QStringList &env) = 0;
     virtual bool isTrkAdapter() const = 0;
 
-    virtual void startAdapter(const DebuggerStartParametersPtr &sp) = 0;
+    virtual void startAdapter() = 0;
     virtual void prepareInferior() = 0;
     virtual void startInferior() = 0;
     virtual void interruptInferior() = 0;
     virtual void shutdown() = 0;
 
+    virtual const DebuggerStartParameters &startParameters() const
+        { return m_engine->startParameters(); }
+
 signals:
     void adapterStarted();
     void adapterStartFailed(const QString &msg);
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index a57b8e0180b7e4d61e7fb26971c2fc28fb8f8dba..7f88fb9e0363f09d04ba2968f680f5b87905eb90 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1521,6 +1521,8 @@ void GdbEngine::startDebugger(const DebuggerStartParametersPtr &sp)
     //    initializeVariables());
     //QTC_ASSERT(m_gdbAdapter == 0, delete m_gdbAdapter; m_gdbAdapter = 0);
 
+    m_startParameters = sp;
+
     if (m_gdbAdapter)
         disconnectAdapter();
 
@@ -1532,9 +1534,7 @@ void GdbEngine::startDebugger(const DebuggerStartParametersPtr &sp)
     initializeVariables();
     connectAdapter();
 
-    m_startParameters = sp;
-    
-    m_gdbAdapter->startAdapter(sp);
+    m_gdbAdapter->startAdapter();
 
 /*
     QStringList gdbArgs;
diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h
index 31959895e07a9aad77e76bc3521903a0671a2868..bc25ffbf3e8722e70287abbfac0e63ed40c0827c 100644
--- a/src/plugins/debugger/gdb/gdbengine.h
+++ b/src/plugins/debugger/gdb/gdbengine.h
@@ -95,8 +95,6 @@ private:
     friend class TrkGdbAdapter;
     friend class RemoteGdbAdapter;
 
-    const DebuggerStartParameters &startParameters() const
-        { return *m_startParameters; }
     //
     // IDebuggerEngine implementation
     //
@@ -452,6 +450,8 @@ public:
     void showMessageBox(int icon, const QString &title, const QString &text);
     void debugMessage(const QString &msg);
     void addOptionPages(QList<Core::IOptionsPage*> *opts) const;
+    const DebuggerStartParameters &startParameters() const
+        { return *m_startParameters; }
 
     OutputCollector m_outputCollector;
 };
diff --git a/src/plugins/debugger/gdb/plaingdbadapter.cpp b/src/plugins/debugger/gdb/plaingdbadapter.cpp
index f29def0afdfa0650ac2efdcba643e44d0df65d41..68630fff7a73afa0b016ff4c065e361cfcba5f62 100644
--- a/src/plugins/debugger/gdb/plaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/plaingdbadapter.cpp
@@ -83,24 +83,23 @@ PlainGdbAdapter::PlainGdbAdapter(GdbEngine *engine, QObject *parent)
 //        m_manager, SLOT(exitDebugger()));
 }
 
-void PlainGdbAdapter::startAdapter(const DebuggerStartParametersPtr &sp)
+void PlainGdbAdapter::startAdapter()
 {
     QTC_ASSERT(state() == AdapterNotRunning, qDebug() << state());
     setState(AdapterStarting);
     debugMessage(_("TRYING TO START ADAPTER"));
-    m_startParameters = sp;
 
     QStringList gdbArgs;
     gdbArgs.prepend(_("mi"));
     gdbArgs.prepend(_("-i"));
 
-    if (m_startParameters->useTerminal) {
+    if (startParameters().useTerminal) {
         m_stubProc.stop(); // We leave the console open, so recycle it now.
 
-        m_stubProc.setWorkingDirectory(m_startParameters->workingDir);
-        m_stubProc.setEnvironment(m_startParameters->environment);
-        if (!m_stubProc.start(m_startParameters->executable,
-                             m_startParameters->processArgs)) {
+        m_stubProc.setWorkingDirectory(startParameters().workingDir);
+        m_stubProc.setEnvironment(startParameters().environment);
+        if (!m_stubProc.start(startParameters().executable,
+                             startParameters().processArgs)) {
             // Error message for user is delivered via a signal.
             emitAdapterStartFailed(QString());
             return;
@@ -113,10 +112,10 @@ void PlainGdbAdapter::startAdapter(const DebuggerStartParametersPtr &sp)
         }
         gdbArgs.prepend(_("--tty=") + m_engine->m_outputCollector.serverName());
 
-        if (!m_startParameters->workingDir.isEmpty())
-            setWorkingDirectory(m_startParameters->workingDir);
-        if (!m_startParameters->environment.isEmpty())
-            setEnvironment(m_startParameters->environment);
+        if (!startParameters().workingDir.isEmpty())
+            setWorkingDirectory(startParameters().workingDir);
+        if (!startParameters().environment.isEmpty())
+            setEnvironment(startParameters().environment);
     }
 
     QString location = theDebuggerStringSetting(GdbLocation);
@@ -135,9 +134,9 @@ void PlainGdbAdapter::prepareInferior()
 {
     QTC_ASSERT(state() == AdapterStarted, qDebug() << state());
     setState(InferiorPreparing);
-    if (!m_startParameters->processArgs.isEmpty())
+    if (!startParameters().processArgs.isEmpty())
         m_engine->postCommand(_("-exec-arguments ")
-            + m_startParameters->processArgs.join(_(" ")));
+            + startParameters().processArgs.join(_(" ")));
     QFileInfo fi(m_engine->startParameters().executable);
     m_engine->postCommand(_("-file-exec-and-symbols \"%1\"").arg(fi.absoluteFilePath()),
         CB(handleFileExecAndSymbols));
diff --git a/src/plugins/debugger/gdb/plaingdbadapter.h b/src/plugins/debugger/gdb/plaingdbadapter.h
index 78fd23a70a178bf1122817ce4d57148d0d9eeba2..f10d822da7f6dc9b2dc4d1704d26e528ff86aa33 100644
--- a/src/plugins/debugger/gdb/plaingdbadapter.h
+++ b/src/plugins/debugger/gdb/plaingdbadapter.h
@@ -61,7 +61,7 @@ public:
     void setEnvironment(const QStringList &env) { m_gdbProc.setEnvironment(env); }
     bool isTrkAdapter() const { return false; }
 
-    void startAdapter(const DebuggerStartParametersPtr &sp);
+    void startAdapter();
     void prepareInferior();
     void startInferior();
     void interruptInferior();
@@ -83,7 +83,6 @@ private:
     Q_SLOT void stubError(const QString &msg);
 
     QProcess m_gdbProc;
-    DebuggerStartParametersPtr m_startParameters;
     Core::Utils::ConsoleProcess m_stubProc;
 };
 
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index 0b673abdb85b428e465d02f458671afb432966af..05980ba90e59a211ed036fe14124d34d3353ba26 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp
@@ -1344,12 +1344,11 @@ void TrkGdbAdapter::handleGdbStateChanged(QProcess::ProcessState newState)
     logMessage(_("GDB: Process State %1").arg(newState));
 }
 
-void TrkGdbAdapter::startAdapter(const DebuggerStartParametersPtr &sp)
+void TrkGdbAdapter::startAdapter()
 {
     QTC_ASSERT(state() == AdapterNotRunning, qDebug() << state());
     setState(AdapterStarting);
     debugMessage(_("TRYING TO START ADAPTER"));
-    m_startParameters = sp;
     logMessage(QLatin1String("### Starting TrkGdbAdapter"));
     if (m_options->mode == TrkOptions::BlueTooth) {
         const QString device = effectiveTrkDevice();
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.h b/src/plugins/debugger/gdb/trkgdbadapter.h
index 6359a428478fc95fa0695aa0e226526a3227d3f4..7c6ecda322a3dcd84f9b0ced428d7b637fd13888 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.h
+++ b/src/plugins/debugger/gdb/trkgdbadapter.h
@@ -32,6 +32,7 @@
 
 #include "trkutils.h"
 #include "trkdevice.h"
+#include "trkoptions.h"
 #include "abstractgdbadapter.h"
 
 #include <QtCore/QHash>
@@ -48,8 +49,6 @@
 namespace Debugger {
 namespace Internal {
 
-struct TrkOptions;
-
 struct GdbResult
 {
     QByteArray data;
@@ -101,7 +100,6 @@ private:
     QProcess m_gdbProc;
     QProcess m_rfcommProc;
     bool m_running;
-    DebuggerStartParametersPtr m_startParameters;
     void debugMessage(const QString &msg) { m_engine->debugMessage(msg); }
 
 public:
@@ -117,7 +115,7 @@ public:
     void setEnvironment(const QStringList &env);
     bool isTrkAdapter() const { return true; }
 
-    void startAdapter(const DebuggerStartParametersPtr &sp);
+    void startAdapter();
     void prepareInferior();
     void startInferior();
     void interruptInferior();