diff --git a/src/app/main.cpp b/src/app/main.cpp
index da6f0716c7da9e3dd2f3789377722b964ed2c02d..69fda6f0ffa2c4bc84fbc2a9c5311cec4f1dcf97 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -298,6 +298,7 @@ int main(int argc, char **argv)
 #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
     // QML is unusable with the xlib backend
     QApplication::setGraphicsSystem(QLatin1String("raster"));
+    qputenv("QSG_RENDER_LOOP", "basic"); // workaround for QTBUG-35143
 #endif
 
     SharedTools::QtSingleApplication app((QLatin1String(appNameC)), argc, argv);
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index fb1f5a32c62203a567162b7ef395c8ecd192edd0..ca460ca540ccb7291895016a975c721e905475be 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -250,8 +250,16 @@ Target *BuildConfiguration::target() const
 Utils::Environment BuildConfiguration::baseEnvironment() const
 {
     Utils::Environment result;
-    if (useSystemEnvironment())
+    if (useSystemEnvironment()) {
+#if 1
+        // workaround for QTBUG-35143
+        result = Utils::Environment::systemEnvironment();
+        result.unset(QLatin1String("QSG_RENDER_LOOP"));
+#else
         result = Utils::Environment::systemEnvironment();
+#endif
+    }
+
     target()->kit()->addToEnvironment(result);
     return result;
 }
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.cpp b/src/plugins/projectexplorer/localenvironmentaspect.cpp
index faef642a17c9a017ad0e1d48554f4e3cd5f30c47..6d9268aba363c80661a1118b3f62a1ee69ed95c1 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.cpp
+++ b/src/plugins/projectexplorer/localenvironmentaspect.cpp
@@ -69,11 +69,23 @@ Utils::Environment LocalEnvironmentAspect::baseEnvironment() const
         if (BuildConfiguration *bc = runConfiguration()->target()->activeBuildConfiguration()) {
             env = bc->environment();
         } else { // Fallback for targets without buildconfigurations:
+#if 1
+            // workaround for QTBUG-35143
             env = Utils::Environment::systemEnvironment();
+            env.unset(QLatin1String("QSG_RENDER_LOOP"));
+#else
+            env = Utils::Environment::systemEnvironment();
+#endif
             runConfiguration()->target()->kit()->addToEnvironment(env);
         }
     } else if (base == static_cast<int>(SystemEnvironmentBase)) {
-        env = Utils::Environment::systemEnvironment();
+#if 1
+            // workaround for QTBUG-35143
+            env = Utils::Environment::systemEnvironment();
+            env.unset(QLatin1String("QSG_RENDER_LOOP"));
+#else
+            env = Utils::Environment::systemEnvironment();
+#endif
     }
 
     if (const LocalApplicationRunConfiguration *rc = qobject_cast<const LocalApplicationRunConfiguration *>(runConfiguration()))
diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
index cef5dfeee43a920666458d5d28e5912e704dbd4f..ab60581b20fae05f9775fcbe4973fdb583a69e70 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
@@ -51,7 +51,14 @@ QString QmlProjectEnvironmentAspect::baseEnvironmentDisplayName(int base) const
 
 Utils::Environment QmlProjectManager::QmlProjectEnvironmentAspect::baseEnvironment() const
 {
+#if 1
+    // workaround for QTBUG-35143
+    Utils::Environment env = Utils::Environment::systemEnvironment();
+    env.unset(QLatin1String("QSG_RENDER_LOOP"));
+    return env;
+#else
     return Utils::Environment::systemEnvironment();
+#endif
 }
 
 QmlProjectEnvironmentAspect::QmlProjectEnvironmentAspect(ProjectExplorer::RunConfiguration *rc) :