diff --git a/src/quick/items/qquickimagebase.cpp b/src/quick/items/qquickimagebase.cpp
index 735910e7ff944c1cd2279043274d2106f5e4fac6..798050d776942c3d09986b0acfc441a69b41a661 100644
--- a/src/quick/items/qquickimagebase.cpp
+++ b/src/quick/items/qquickimagebase.cpp
@@ -118,7 +118,6 @@ void QQuickImageBase::setSourceSize(const QSize& size)
         return;
 
     d->sourcesize = size;
-    d->explicitSourceSize = true;
     emit sourceSizeChanged();
     if (isComponentComplete())
         load();
@@ -135,14 +134,7 @@ QSize QQuickImageBase::sourceSize() const
 
 void QQuickImageBase::resetSourceSize()
 {
-    Q_D(QQuickImageBase);
-    if (!d->explicitSourceSize)
-        return;
-    d->explicitSourceSize = false;
-    d->sourcesize = QSize();
-    emit sourceSizeChanged();
-    if (isComponentComplete())
-        load();
+    setSourceSize(QSize());
 }
 
 bool QQuickImageBase::cache() const
@@ -209,7 +201,7 @@ void QQuickImageBase::load()
             options |= QQuickPixmap::Cache;
         d->pix.clear(this);
         pixmapChange();
-        d->pix.load(qmlEngine(this), d->url, d->explicitSourceSize ? sourceSize() : QSize(), options);
+        d->pix.load(qmlEngine(this), d->url, d->sourcesize, options);
 
         if (d->pix.isLoading()) {
             d->progress = 0.0;
diff --git a/src/quick/items/qquickimagebase_p_p.h b/src/quick/items/qquickimagebase_p_p.h
index 7c2fce1e794012d04de6f0bee7a1daed03705155..6e452387ae8517707c4c4eb8bbb0d7e160d6bc32 100644
--- a/src/quick/items/qquickimagebase_p_p.h
+++ b/src/quick/items/qquickimagebase_p_p.h
@@ -69,7 +69,6 @@ public:
     QQuickImageBasePrivate()
       : status(QQuickImageBase::Null),
         progress(0.0),
-        explicitSourceSize(false),
         async(false),
         cache(true),
         mirror(false)
@@ -81,7 +80,6 @@ public:
     QUrl url;
     qreal progress;
     QSize sourcesize;
-    bool explicitSourceSize : 1;
     bool async : 1;
     bool cache : 1;
     bool mirror: 1;