diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index deb3c85b2f13f24fe412374bf790080e50a89764..9056f03519ab1f6dfed817db0fb74476107346ab 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1428,7 +1428,7 @@ void EditorManager::updateActions()
 {
     QString fName;
     IEditor *curEditor = currentEditor();
-    int openedCount = openedEditors().count() + m_d->m_editorModel->restoredEditorCount();
+    int openedCount = openedEditors().count() + m_d->m_editorModel->restoredEditors().count();
     if (curEditor) {
         if (!curEditor->file()->fileName().isEmpty()) {
             QFileInfo fi(curEditor->file()->fileName());
diff --git a/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp b/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp
index 65c6f49878799df4f313d7134a167c0d0e8ea29a..28e0afe1bb658eb3af5fa92eb1120a1219258943 100644
--- a/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp
+++ b/src/plugins/coreplugin/editormanager/openeditorsmodel.cpp
@@ -188,15 +188,15 @@ void OpenEditorsModel::removeAllRestoredEditors()
     }
 }
 
-int OpenEditorsModel::restoredEditorCount() const
+QList<OpenEditorsModel::Entry> OpenEditorsModel::restoredEditors() const
 {
-    int count = 0;
+    QList<Entry> result;
     for (int i = m_editors.count()-1; i >= 0; --i) {
         if (!m_editors.at(i).editor) {
-            ++count;
+            result.append(m_editors.at(i));
         }
     }
-    return count;
+    return result;
 }
 
 bool OpenEditorsModel::isDuplicate(IEditor *editor) const
diff --git a/src/plugins/coreplugin/editormanager/openeditorsmodel.h b/src/plugins/coreplugin/editormanager/openeditorsmodel.h
index fb1e1cdb85a363ea9fba32541456cb9ada9826af..208d125e367cb2790df4da458c451771a082f916 100644
--- a/src/plugins/coreplugin/editormanager/openeditorsmodel.h
+++ b/src/plugins/coreplugin/editormanager/openeditorsmodel.h
@@ -72,10 +72,10 @@ public:
     void removeEditor(const QModelIndex &index);
 
     void removeAllRestoredEditors();
-    int restoredEditorCount() const;
     void emitDataChanged(IEditor *editor);
 
     QList<IEditor *> editors() const;
+    QList<Entry> restoredEditors() const;
     bool isDuplicate(IEditor *editor) const;
     QList<IEditor *> duplicatesFor(IEditor *editor) const;
     IEditor *originalForDuplicate(IEditor *duplicate) const;
diff --git a/src/plugins/locator/opendocumentsfilter.cpp b/src/plugins/locator/opendocumentsfilter.cpp
index 096db8b7ea6cac303626c98725e047a9799052ad..42b03dab06ae43bd49bee28962ee0e427244286a 100644
--- a/src/plugins/locator/opendocumentsfilter.cpp
+++ b/src/plugins/locator/opendocumentsfilter.cpp
@@ -56,13 +56,13 @@ QList<FilterEntry> OpenDocumentsFilter::matchesFor(const QString &entry)
     const QRegExp regexp(pattern, Qt::CaseInsensitive, QRegExp::Wildcard);
     if (!regexp.isValid())
         return value;
-    foreach (IEditor *editor, m_editors) {
-        QString fileName = editor->file()->fileName();
-        if (regexp.exactMatch(editor->displayName())) {
-            QString visibleName;
-            QVariant data;
+    foreach (const OpenEditorsModel::Entry &entry, m_editors) {
+        QString fileName = entry.fileName();
+        QString displayName = entry.displayName();
+        if (regexp.exactMatch(displayName)) {
             if (fileName.isEmpty()) {
-                value.append(FilterEntry(this, editor->displayName(), qVariantFromValue(editor)));
+                if (entry.editor)
+                    value.append(FilterEntry(this, displayName, qVariantFromValue(entry.editor)));
             } else {
                 QFileInfo fi(fileName);
                 FilterEntry entry(this, fi.fileName(), fileName);
@@ -77,7 +77,13 @@ QList<FilterEntry> OpenDocumentsFilter::matchesFor(const QString &entry)
 
 void OpenDocumentsFilter::refreshInternally()
 {
-    m_editors = m_editorManager->openedEditors();
+    m_editors.clear();
+    foreach (IEditor *editor, m_editorManager->openedEditors()) {
+        OpenEditorsModel::Entry entry;
+        entry.editor = editor;
+        m_editors.append(entry);
+    }
+    m_editors += m_editorManager->openedEditorsModel()->restoredEditors();
 }
 
 void OpenDocumentsFilter::refresh(QFutureInterface<void> &future)
diff --git a/src/plugins/locator/opendocumentsfilter.h b/src/plugins/locator/opendocumentsfilter.h
index b2f078ae391a626b7f9ce115838f7464ef60c779..7d01ebf99d2785d83f61a3359af4b4cb3cf3d5e8 100644
--- a/src/plugins/locator/opendocumentsfilter.h
+++ b/src/plugins/locator/opendocumentsfilter.h
@@ -39,6 +39,7 @@
 #include <QtGui/QWidget>
 
 #include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/editormanager/openeditorsmodel.h>
 #include <coreplugin/editormanager/ieditor.h>
 
 namespace Locator {
@@ -63,7 +64,7 @@ public slots:
 private:
     Core::EditorManager *m_editorManager;
 
-    QList<Core::IEditor *> m_editors;
+    QList<Core::OpenEditorsModel::Entry> m_editors;
 };
 
 } // namespace Internal
diff --git a/src/plugins/qmldesigner/designmode.cpp b/src/plugins/qmldesigner/designmode.cpp
index ffa1578e238985712684515f5f546156d39844d8..4b824d3e4bc3fc0a2cf372db7d48baaae2776d68 100644
--- a/src/plugins/qmldesigner/designmode.cpp
+++ b/src/plugins/qmldesigner/designmode.cpp
@@ -256,7 +256,7 @@ void DesignMode::updateActions()
 
     Core::IEditor *curEditor = m_currentEditor.data();
     int openedCount = editorManager->openedEditors().count()
-                      + editorManager->openedEditorsModel()->restoredEditorCount();
+                      + editorManager->openedEditorsModel()->restoredEditors().count();
 
     QString fName;
     if (curEditor) {