diff --git a/src/quick/items/qquickrepeater.cpp b/src/quick/items/qquickrepeater.cpp
index 62ce78a64494802f3a5a23a4db9bd0fd64c2f5d1..d92b3b43d8b61017564ba57ee43d8b65984af921 100644
--- a/src/quick/items/qquickrepeater.cpp
+++ b/src/quick/items/qquickrepeater.cpp
@@ -351,11 +351,12 @@ void QQuickRepeater::clear()
 
     if (d->model) {
         for (int i = 0; i < d->deletables.count(); ++i) {
-            QQuickItem *item = d->deletables.at(i);
-            if (complete)
-                emit itemRemoved(i, item);
-            item->setParentItem(0);
-            d->model->release(item);
+            if (QQuickItem *item = d->deletables.at(i)) {
+                if (complete)
+                    emit itemRemoved(i, item);
+                item->setParentItem(0);
+                d->model->release(item);
+            }
         }
     }
     d->deletables.clear();