diff --git a/tests/system/objects.map b/tests/system/objects.map
index bb758419ecba312824cc721abe2f39165d5677a6..563969df75d13b3ef655dbb8605f6308bb7ffaef 100644
--- a/tests/system/objects.map
+++ b/tests/system/objects.map
@@ -5,6 +5,7 @@
 :*Qt Creator_Core::Internal::FancyToolButton	{occurrence='3' type='Core::Internal::FancyToolButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
 :*Qt Creator_Utils::FilterLineEdit	{type='Utils::FilterLineEdit' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
 :*Qt Creator_Utils::IconButton	{occurrence='4' type='Utils::IconButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
+:CMake Wizard.Cancel_QPushButton	{text='Cancel' type='QPushButton' unnamed='1' visible='1' window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}
 :CMake Wizard.Finish_QPushButton	{text~='(Finish|Done)' type='QPushButton' unnamed='1' visible='1' window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}
 :CMake Wizard.Generator:_QLabel	{text='Generator:' type='QLabel' unnamed='1' visible='1' window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}
 :CMake Wizard.Next_QPushButton	{name='__qt__passive_wizardbutton1' text~='(Next.*|Continue)' type='QPushButton' visible='1' window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}
diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py
index a7990a2b2669ff3919a17b912bd508abaf49c698..830ce8e6d447ed7a1d772518df33a7d5e184e9ab 100644
--- a/tests/system/shared/project.py
+++ b/tests/system/shared/project.py
@@ -27,7 +27,16 @@ def openCmakeProject(projectPath):
     if index != -1:
         generatorCombo.setCurrentIndex(index)
     clickButton(waitForObject(":CMake Wizard.Run CMake_QPushButton", 20000))
-    clickButton(waitForObject(":CMake Wizard.Finish_QPushButton", 60000))
+    try:
+        clickButton(waitForObject(":CMake Wizard.Finish_QPushButton", 60000))
+    except LookupError:
+        cmakeOutput = waitForObject("{type='QPlainTextEdit' unnamed='1' visible='1' "
+                                    "window=':CMake Wizard_CMakeProjectManager::Internal::CMakeOpenProjectWizard'}")
+        test.warning("Error while executing cmake - see details for cmake output.",
+                     str(cmakeOutput.plainText))
+        clickButton(waitForObject(":CMake Wizard.Cancel_QPushButton"))
+        return False
+    return True
 
 def shadowBuildDir(path, project, qtVersion, debugVersion):
     qtVersion = qtVersion.replace(" ", "_")
diff --git a/tests/system/suite_general/tst_cmake_speedcrunch/test.py b/tests/system/suite_general/tst_cmake_speedcrunch/test.py
index 0307c60eceb4a7f8283b2f812da58109a6356004..89aaa5cc0f4c455a84a00a40ff87c9a984af6edb 100644
--- a/tests/system/suite_general/tst_cmake_speedcrunch/test.py
+++ b/tests/system/suite_general/tst_cmake_speedcrunch/test.py
@@ -3,16 +3,23 @@ source("../../shared/qtcreator.py")
 SpeedCrunchPath = ""
 
 def main():
-    if(which("cmake") == None):
-        test.fatal("cmake not found")
+    if (which("cmake") == None):
+        test.warning("cmake not found in PATH - needed to run this test")
+        return
+    if (which("qmake") == None):
+        test.warning("qmake not found in PATH - needed to run this test")
         return
     if not neededFilePresent(SpeedCrunchPath):
         return
 
     startApplication("qtcreator" + SettingsPath)
 
-    openCmakeProject(SpeedCrunchPath)
-
+    result = openCmakeProject(SpeedCrunchPath)
+    if not result:
+        test.warning("Could not open/create cmake project - leaving test")
+        invokeMenuItem("File", "Exit")
+        waitForCleanShutdown()
+        return
     waitForSignal("{type='CppTools::Internal::CppModelManager' unnamed='1'}", "sourceFilesRefreshed(QStringList)")
 
     # Test that some of the expected items are in the navigation tree