diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
index 80a576b596265d55b483ab8b82a20f63538db413..4d2b9c3d5648db02b80535d73e902593d5bdf86e 100644
--- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
@@ -214,8 +214,13 @@ bool QbsRunConfiguration::forcedGuiMode() const
 {
     QbsProject *pro = static_cast<QbsProject *>(target()->project());
     const qbs::ProductData product = findProduct(pro->qbsProjectData(), m_qbsProduct);
+    foreach (const qbs::TargetArtifact &ta, product.targetArtifacts()) {
+        if (ta.isExecutable())
+            return !ta.properties().getProperty(QLatin1String("consoleApplication")).toBool();
+    }
 
-    return !product.properties().getProperty(QLatin1String("consoleApplication")).toBool();
+    QTC_ASSERT(false, qDebug("No executable target in product '%s'", qPrintable(product.name())));
+    return false;
 }
 
 QString QbsRunConfiguration::workingDirectory() const
diff --git a/src/shared/qbs b/src/shared/qbs
index b196bb68f7ac03b3bf9fcbcb4af3ae81e0ca0d7e..0276bf6fb488a00fdcd5c0ebcbdb9ee6c5e37327 160000
--- a/src/shared/qbs
+++ b/src/shared/qbs
@@ -1 +1 @@
-Subproject commit b196bb68f7ac03b3bf9fcbcb4af3ae81e0ca0d7e
+Subproject commit 0276bf6fb488a00fdcd5c0ebcbdb9ee6c5e37327