diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index bbf314e03ee1caa9a1443d94687d7f016d75ad48..807445858631e581256e7d142d26eddc082b61fc 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1090,9 +1090,6 @@ void GdbEngine::handleStopResponse(const GdbMi &data)
         if (reason == "end-stepping-range" || reason == "function-finished") {
             GdbMi frame = data.findChild("frame");
             //debugMessage(frame.toString());
-            m_currentFrame = _(frame.findChild("addr").data() + '%' +
-                 frame.findChild("func").data() + '%');
-
             QString funcName = _(frame.findChild("func").data());
             QString fileName = QString::fromLocal8Bit(frame.findChild("file").data());
             if (isLeavableFunction(funcName, fileName)) {
@@ -1144,11 +1141,7 @@ void GdbEngine::handleStop1(const GdbMi &data)
     QByteArray reason = data.findChild("reason").data();
     if (reason == "breakpoint-hit") {
         showStatusMessage(tr("Stopped at breakpoint."));
-        GdbMi frame = data.findChild("frame");
         //debugMessage(_("HIT BREAKPOINT: " + frame.toString()));
-        m_currentFrame = _(frame.findChild("addr").data() + '%' +
-             frame.findChild("func").data() + '%');
-
         postCommand(_("-break-list"), CB(handleBreakList));
         QVariant var = QVariant::fromValue<GdbMi>(data);
         postCommand(_("p 2"), CB(handleStop2), var);  // dummy
@@ -1188,6 +1181,9 @@ void GdbEngine::handleStop2(const GdbMi &data)
 {
     const GdbMi gdbmiFrame = data.findChild("frame");
 
+    m_currentFrame = _(gdbmiFrame.findChild("addr").data() + '%' +
+         gdbmiFrame.findChild("func").data() + '%');
+
     // Quick shot: Jump to stack frame #0.
     StackFrame frame;
     if (gdbmiFrame.isValid()) {