diff --git a/src/plugins/debugger/debuggercore.h b/src/plugins/debugger/debuggercore.h
index 63da7f1294bf7a7704fdce195dc20eb7dcbb3b79..a8acfe0f0dd0cc2ee332bae5bfdf455d894c13cb 100644
--- a/src/plugins/debugger/debuggercore.h
+++ b/src/plugins/debugger/debuggercore.h
@@ -92,6 +92,8 @@ public:
         bool setMarker = false) = 0;
 
     virtual void resetLocation() = 0;
+    virtual void removeLocationMark() = 0;
+
     virtual void readSettings() = 0;
     virtual void writeSettings() const = 0;
 
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 926326dce2fbd432f0733c6cadf0e9e1dab3ae78..57902453cffb9cfd793208ac9d1f372092f7f1bd 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -516,7 +516,7 @@ void DebuggerEngine::resetLocation()
 {
     d->m_disassemblerViewAgent.resetLocation();
     d->m_stackHandler.setCurrentIndex(-1);
-    debuggerCore()->resetLocation();
+    debuggerCore()->removeLocationMark();
 }
 
 void DebuggerEngine::gotoLocation(const QString &fileName, int lineNumber, bool setMarker)
@@ -531,7 +531,7 @@ void DebuggerEngine::gotoLocation(const StackFrame &frame, bool setMarker)
 {
     if (theDebuggerBoolSetting(OperateByInstruction) || !frame.isUsable()) {
         if (setMarker)
-            debuggerCore()->resetLocation();
+            resetLocation();
         d->m_disassemblerViewAgent.setFrame(frame);
     } else {
         debuggerCore()->gotoLocation(frame.file, frame.line, setMarker);
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 2a314b12ea3dccc093a942873cdbadea38f63c52..b1523dc438b31b2aa5c0bc6d256bf7b441a09c50 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1201,6 +1201,7 @@ public slots:
     }
 
     void resetLocation();
+    void removeLocationMark();
     QVariant sessionValue(const QString &name);
     void setSessionValue(const QString &name, const QVariant &value);
     QIcon locationMarkIcon() const { return m_locationMarkIcon; }
@@ -2910,9 +2911,10 @@ const CPlusPlus::Snapshot &DebuggerPluginPrivate::cppCodeModelSnapshot() const
 void DebuggerPluginPrivate::resetLocation()
 {
     currentEngine()->resetLocation();
-    // FIXME: code should be moved here from the engine implementation.
-    //d->m_disassemblerViewAgent.resetLocation();
-    //d->m_stackHandler.setCurrentIndex(-1);
+}
+
+void DebuggerPluginPrivate::removeLocationMark()
+{
     m_locationMark.reset();
 }