diff --git a/src/quick/items/qquickthreadedwindowmanager.cpp b/src/quick/items/qquickthreadedwindowmanager.cpp
index 50bd569496f7f975abe3e4d89c60f2827c4db2ed..fac4fb034f5086be15c68f465623cca7d13db8cc 100644
--- a/src/quick/items/qquickthreadedwindowmanager.cpp
+++ b/src/quick/items/qquickthreadedwindowmanager.cpp
@@ -43,6 +43,7 @@
 #include "qquickthreadedwindowmanager_p.h"
 
 #include <QtCore/QTime>
+#include <QtCore/QDebug>
 
 #include <QtGui/QOpenGLContext>
 #include <QtGui/private/qguiapplication_p.h>
@@ -396,20 +397,24 @@ void QQuickRenderThreadSingleContextWindowManager::run()
             WindowData *windowData = it.value();
             QQuickWindowPrivate *windowPrivate = QQuickWindowPrivate::get(window);
 
-            Q_ASSERT(windowPrivate->isRenderable());
-
-            gl->makeCurrent(window);
+            if (windowPrivate->isRenderable()) {
+                gl->makeCurrent(window);
 
-            if (windowData->viewportSize != windowData->windowSize) {
+                if (windowData->viewportSize != windowData->windowSize) {
 #ifdef THREAD_DEBUG
-                printf("                RenderThread: --- window has changed size...\n");
+                    printf("                RenderThread: --- window has changed size...\n");
 #endif
-                windowData->viewportSize = windowData->windowSize;
-                windowData->sizeWasChanged = true;
-                glViewport(0, 0, windowData->viewportSize.width(), windowData->viewportSize.height());
-            }
+                    windowData->viewportSize = windowData->windowSize;
+                    windowData->sizeWasChanged = true;
+                    glViewport(0, 0, windowData->viewportSize.width(), windowData->viewportSize.height());
+                }
 
-            windowPrivate->syncSceneGraph();
+                windowPrivate->syncSceneGraph();
+            } else {
+                qWarning().nospace()
+                    << "Non-renderable window " << window
+                    << " (" << window->geometry() << ").";
+            }
         }
         inSync = false;
 
diff --git a/src/quick/items/qquickwindowmanager.cpp b/src/quick/items/qquickwindowmanager.cpp
index dd27182ffecd888a09bf97b43d74441b6757b1a7..50887e8e993a077c2242fbacf5d03129fa8c7070 100644
--- a/src/quick/items/qquickwindowmanager.cpp
+++ b/src/quick/items/qquickwindowmanager.cpp
@@ -225,7 +225,13 @@ void QQuickTrivialWindowManager::renderWindow(QQuickWindow *window)
     if (!masterWindow)
         return;
 
-    Q_ASSERT(QQuickWindowPrivate::get(masterWindow)->isRenderable());
+    if (!QQuickWindowPrivate::get(masterWindow)->isRenderable()) {
+        qWarning().nospace()
+            << "Unable to find a renderable master window "
+            << masterWindow << "when trying to render"
+            << window << " (" << window->geometry() << ").";
+        return;
+    }
 
     if (!gl) {
         gl = new QOpenGLContext();