diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp
index 6d4982926b2017fcc796d3f7bf86ee1ffb8e9b80..513d9d0dcee1d71a9b440eabf83f5d452ae1f4e5 100644
--- a/src/plugins/projectexplorer/session.cpp
+++ b/src/plugins/projectexplorer/session.cpp
@@ -184,9 +184,12 @@ bool SessionFile::load(const QString &fileName)
     QMap<QString, QVariant>::const_iterator i = depMap.constBegin();
     while (i != depMap.constEnd()) {
         const QString &key = i.key();
+        if (m_failedProjects.contains(key))
+            continue;
         QStringList values;
         foreach (const QString &value, i.value().toStringList()) {
-            values << value;
+            if (!m_failedProjects.contains(value))
+                values << value;
         }
         m_depMap.insert(key, values);
         ++i;