diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp
index b30c9e93d809173872cba8397b566cff282148fb..d90d8761c83d92b49c4aacf181e2df60fc498aa0 100644
--- a/src/quick/items/qquickshadereffect.cpp
+++ b/src/quick/items/qquickshadereffect.cpp
@@ -413,6 +413,8 @@ void QQuickShaderEffect::setSource(const QVariant &var, int index)
     }
 
     QObject *obj = qVariantValue<QObject *>(var);
+    if (!obj)
+        return;
     QQuickItem *item = qobject_cast<QQuickItem *>(obj);
     if (!item || !item->isTextureProvider()) {
         qWarning("ShaderEffect: source uniform [%s] is not assigned a valid texture provider: %s [%s]",