diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 5978ed7df6ae619c7a913c6f2ac0a249eec001be..f12052063f6c9eb2ad4d6fd6fdd2a4c03dedf096 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -533,6 +533,11 @@ void DebuggerEngine::gotoLocation(const QString &file, int line, bool setMarker)
 
     if (setMarker)
         d->m_locationMark.reset(new LocationMark(file, line));
+
+    // FIXME: Breaks with split views.
+    if (!d->m_memoryAgent.hasVisibleEditor())
+        editorManager->activateEditor(editors.back());
+    //qDebug() << "MEMORY: " << d->m_memoryAgent.hasVisibleEditor();
 }
 
 void DebuggerEngine::gotoLocation(const StackFrame &frame, bool setMarker)
diff --git a/src/plugins/debugger/memoryagent.cpp b/src/plugins/debugger/memoryagent.cpp
index 60de4861ba4f3601b0b517add9146a1d5d4d4a15..2b11f5615a0b974a49cd02c2962a3f048a114f05 100644
--- a/src/plugins/debugger/memoryagent.cpp
+++ b/src/plugins/debugger/memoryagent.cpp
@@ -161,5 +161,14 @@ void MemoryAgent::updateContents()
             QMetaObject::invokeMethod(editor->widget(), "updateContents");
 }
 
+bool MemoryAgent::hasVisibleEditor() const
+{
+    QList<IEditor *> visible = EditorManager::instance()->visibleEditors();
+    foreach (QPointer<IEditor> editor, m_editors)
+        if (visible.contains(editor.data()))
+            return true;
+    return false;
+}
+
 } // namespace Internal
 } // namespace Debugger
diff --git a/src/plugins/debugger/memoryagent.h b/src/plugins/debugger/memoryagent.h
index 23917793c9f35f8aa287bbc21713c277fbfa9049..51b41175aba78314ad3d6e13c8b75f3da8d13226 100644
--- a/src/plugins/debugger/memoryagent.h
+++ b/src/plugins/debugger/memoryagent.h
@@ -52,6 +52,7 @@ public:
     ~MemoryAgent();
 
     enum { BinBlockSize = 1024 };
+    bool hasVisibleEditor() const;
 
 public slots:
     // Called by engine to create a new view.