diff --git a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
index 07e31679f056b07d634aca0887ac661e00d7caf8..6bf422b093625a997443b8ce22d0a1f065f4fe4f 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
@@ -151,22 +151,24 @@ bool QmlProjectRunControlFactory::canRun(RunConfiguration *runConfiguration,
 {
     QmlProjectRunConfiguration *config =
         qobject_cast<QmlProjectRunConfiguration*>(runConfiguration);
+    if (!config)
+        return false;
     if (mode == ProjectExplorer::Constants::RUNMODE)
-        return config != 0 && !config->viewerPath().isEmpty();
-    else if (mode != Debugger::Constants::DEBUGMODE)
+        return !config->viewerPath().isEmpty();
+    if (mode != Debugger::Constants::DEBUGMODE)
         return false;
 
-    bool qmlDebugSupportInstalled =
-            Debugger::DebuggerPlugin::isActiveDebugLanguage(Debugger::QmlLanguage);
-
-    if (config && qmlDebugSupportInstalled) {
-        if (!(config->qtVersion() && config->qtVersion()->needsQmlDebuggingLibrary())
-                || !config->observerPath().isEmpty())
-            return true;
-        if (config->qtVersion() && QtSupport::QmlObserverTool::canBuild(config->qtVersion()))
-            return true;
-    }
+    if (!Debugger::DebuggerPlugin::isActiveDebugLanguage(Debugger::QmlLanguage))
+        return false;
 
+    if (!config->observerPath().isEmpty())
+        return true;
+    if (!config->qtVersion())
+        return false;
+    if (!config->qtVersion()->needsQmlDebuggingLibrary())
+        return true;
+    if (QtSupport::QmlObserverTool::canBuild(config->qtVersion()))
+        return true;
     return false;
 }