diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 5d9cb25c06f04324af9c62dc563e114122d52f37..0460f37ee720099d61c6a0776942d5a2dc7ebe85 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1831,8 +1831,10 @@ bool EditorManager::restoreState(const QByteArray &state)
 
         if (!fileName.isEmpty() && !displayName.isEmpty()) {
             QFileInfo fi(fileName);
+            if (!fi.exists())
+                continue;
             QFileInfo rfi(autoSaveName(fileName));
-            if (fi.exists() && rfi.exists() && fi.lastModified() < rfi.lastModified()) {
+            if (rfi.exists() && fi.lastModified() < rfi.lastModified()) {
                 openEditor(fileName, QString::fromUtf8(id));
             } else {
                 m_d->m_editorModel->addRestoredEditor(fileName, displayName, QString::fromUtf8(id));
diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp
index 4491ae12d56e719f50f7019b9b2d8db44fa6849e..a7a6dad9e89e1b14eaf5b12db6e2be235b93d50f 100644
--- a/src/plugins/coreplugin/editormanager/editorview.cpp
+++ b/src/plugins/coreplugin/editormanager/editorview.cpp
@@ -784,6 +784,8 @@ void SplitterOrView::restoreState(const QByteArray &state)
         QByteArray id;
         QByteArray editorState;
         stream >> fileName >> id >> editorState;
+        if (!QFile::exists(fileName))
+            return;
         IEditor *e = em->openEditor(view(), fileName, id, Core::EditorManager::IgnoreNavigationHistory
                                     | Core::EditorManager::NoActivate);