diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index c4fc65a1045c9777c65dc9d8b249e7ed05950955..e356e378cf0ff217cd6b083ca6f9bdc70dc5e3b2 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -977,5 +977,14 @@ bool CPPEditor::openEditorAt(Symbol *s)
     if (s->isGenerated())
         column = 0;
 
+    if (baseTextDocument()->fileName() == fileName) {
+        Core::EditorManager *editorManager = Core::EditorManager::instance();
+        editorManager->addCurrentPositionToNavigationHistory(true);
+        gotoLine(line, column);
+        editorManager->addCurrentPositionToNavigationHistory();
+        setFocus();
+        return true;
+    }
+
     return openCppEditorAt(fileName, line, column);
 }