diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 3097e118d3e3af9eb9c6ebf971f0e3fde94d49be..70509b02ffa3be7e4a9d3b81badaba03fc00a80b 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -273,7 +273,7 @@ ProjectExplorer::BuildConfiguration *CMakeBuildConfigurationFactory::create(cons
     m_project->parseCMakeLists();
 
     // Default to all
-    if (m_project->targets().contains("all"))
+    if (m_project->hasTarget("all"))
         makeStep->setBuildTarget("all", true);
     return bc;
 }
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 5e7697f16207e4a4a95d8182364dbbe8836e30ad..0655727daf9e7fbb783be3d058afa84aefadc7c6 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -319,6 +319,19 @@ QStringList CMakeProject::targets() const
     return results;
 }
 
+bool CMakeProject::hasTarget(const QString &title) const
+{
+    foreach (const CMakeTarget &ct, m_targets) {
+        if (ct.executable.isEmpty())
+            continue;
+        if (ct.title.endsWith("/fast"))
+            continue;
+        if (ct.title == title)
+            return true;
+    }
+    return false;
+}
+
 void CMakeProject::gatherFileNodes(ProjectExplorer::FolderNode *parent, QList<ProjectExplorer::FileNode *> &list)
 {
     foreach(ProjectExplorer::FolderNode *folder, parent->subFolderNodes())
@@ -540,7 +553,7 @@ bool CMakeProject::restoreSettingsImpl(ProjectExplorer::PersistentSettingsReader
     if (!result)
         return false;
 
-    if (!hasUserFile && targets().contains("all"))
+    if (!hasUserFile && hasTarget("all"))
         makeStep->setBuildTarget("all", true);
 
     m_lastActiveBuildConfiguration = activeCMakeBuildConfiguration();
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index 81a9a010af16e56bc424fd6d21b65093d8de65eb..b6e54e5580b953f6b07883edb6cb97a6198e9f70 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -90,6 +90,7 @@ public:
 
     virtual QStringList files(FilesMode fileMode) const;
     QStringList targets() const;
+    bool hasTarget(const QString &title) const;
 
     CMakeTarget targetForTitle(const QString &title);