diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index 547b795cd8fdbf667f743455eac7df11de71443d..a5f8996bf5ff35d837d216ad53763d51027e4400 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -4396,12 +4396,12 @@ void QQuickItemPrivate::deliverKeyEvent(QKeyEvent *e)
             extra->keyHandler->keyReleased(e, true);
     }
 
-    if (e->isAccepted())
+    if (e->isAccepted() || !q->window())
         return;
 
     //only care about KeyPress now
-    if ((q == q->window()->contentItem() || q->activeFocusOnTab())
-            && e->type() == QEvent::KeyPress) {
+    if (e->type() == QEvent::KeyPress &&
+            (q == q->window()->contentItem() || q->activeFocusOnTab())) {
         bool res = false;
         if (!(e->modifiers() & (Qt::ControlModifier | Qt::AltModifier))) {  //### Add MetaModifier?
             if (e->key() == Qt::Key_Backtab