diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index e8d9d2dbaa30a4fc46a0739abc173d683ebcd237..6d28daed1f7ecd0aaa509e463feebce0a99fe671 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1560,10 +1560,12 @@ void GdbEngine::handleExecuteContinue(const GdbResponse &response)
         QTC_ASSERT(state() == InferiorRunningRequested, /**/);
         setState(InferiorStopped);
         QByteArray msg = response.data.findChild("msg").data();
-        if (msg.startsWith("Cannot find bounds of current function")) {
+        if (msg.startsWith("Cannot find bounds of current function")
+            || msg.startsWith("\"finish\" not meaningful in the outermost frame")) {
             if (!m_commandsToRunOnTemporaryBreak.isEmpty())
                 flushQueuedCommands();
             showStatusMessage(tr("Stopped."), 5000);
+            reloadStack(true);
             //showStatusMessage(tr("No debug information available. "
             //  "Leaving function..."));
             //executeStepOut();