diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 02e84fd6a9460acb63017bf8bb107f12a78bd216..452e9908ec49541c762a6f86e3e0dbc1b4b85b70 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1078,7 +1078,6 @@ void GdbEngine::handleAsyncOutput(const GdbMi &data)
         return;
     }
 
-
     //MAC: bool isFirstStop = data.findChild("bkptno").data() == "1";
     //!MAC: startSymbolName == data.findChild("frame").findChild("func")
     if (m_waitingForFirstBreakpointToBeHit) {
@@ -1292,6 +1291,15 @@ void GdbEngine::handleAsyncOutput2(const GdbMi &data)
         }
     }
 
+    // FIXME: Hack, remove as soon as we get real stack traces.
+    if (m_gdbProc->isAdapter()) {
+        StackFrame f;
+        f.file = QString::fromLocal8Bit(fullName.data());
+        f.line = frame.findChild("line").data().toInt();
+        f.address = _(frame.findChild("addr").data());
+        q->gotoLocation(f, true);
+    }
+
     //
     // Stack
     //
@@ -2051,6 +2059,8 @@ void GdbEngine::sendInsertBreakpoint(int index)
     //    cmd += "-c " + data->condition + " ";
 #else
     QString cmd = _("-break-insert -f ");
+    if (m_gdbProc->isAdapter())
+        cmd = _("-break-insert ");
     //if (!data->condition.isEmpty())
     //    cmd += _("-c ") + data->condition + ' ';
 #endif
diff --git a/src/plugins/debugger/symbian/symbianadapter.cpp b/src/plugins/debugger/symbian/symbianadapter.cpp
index c5ff3dc2b24d3e06f1e1b50de1730f3368d8760d..212e1d5e18e7d0459062bd4f8a67f1562e5c1195 100644
--- a/src/plugins/debugger/symbian/symbianadapter.cpp
+++ b/src/plugins/debugger/symbian/symbianadapter.cpp
@@ -1421,6 +1421,7 @@ void SymbianAdapter::attach(GdbEngine *engine) const
         .arg(m_session.codeseg));
     engine->postCommand(_("symbol-file \"%1\"").arg(fileName));
     engine->postCommand(_("target remote ") + gdbServerName());
+    engine->attemptBreakpointSynchronization();
 #endif
 }