diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index fa57b738107d01d4a5e330201eb67f5e7bda6957..929b16d889eb5d426919271bbf118ed3272a3773 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -348,23 +348,27 @@ void QmlEngine::gotoLocation(const Location &location)
     // TODO: QUrl::isLocalFile() once we depend on Qt 4.8
     if (QUrl(fileName).scheme().compare(QLatin1String("file"), Qt::CaseInsensitive) == 0) {
         // internal file from source files -> show generated .js
-        QString fileName = location.fileName();
         QTC_ASSERT(d->m_sourceDocuments.contains(fileName), return);
         const QString jsSource = d->m_sourceDocuments.value(fileName)->toPlainText();
 
         Core::IEditor *editor = 0;
 
         Core::EditorManager *editorManager = Core::EditorManager::instance();
-        QList<Core::IEditor *> editors = editorManager->editorsForFileName(location.fileName());
-        if (editors.isEmpty()) {
-            QString titlePattern = tr("JS Source for %1").arg(fileName);
+        QString titlePattern = tr("JS Source for %1").arg(fileName);
+        //Check if there are open editors with the same title
+        QList<Core::IEditor *> editors = editorManager->openedEditors();
+        foreach (Core::IEditor *ed, editors) {
+            if (ed->displayName() == titlePattern) {
+                editor = ed;
+                break;
+            }
+        }
+        if (!editor) {
             editor = editorManager->openEditorWithContents(QmlJSEditor::Constants::C_QMLJSEDITOR_ID,
                                                            &titlePattern);
             if (editor) {
                 editor->setProperty(Constants::OPENED_BY_DEBUGGER, true);
             }
-        } else {
-            editor = editors.back();
         }
 
         TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor*>(editor);