diff --git a/src/quick/items/qquickborderimage.cpp b/src/quick/items/qquickborderimage.cpp
index 8d8e4b6a0297b6b6da80da39279925b23da7af40..07b8958664f8670cd3891d610b47fd898ac9a991 100644
--- a/src/quick/items/qquickborderimage.cpp
+++ b/src/quick/items/qquickborderimage.cpp
@@ -582,10 +582,16 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat
                                  qMax<qreal>(0, width() - border->right() - border->left()),
                                  qMax<qreal>(0, height() - border->bottom() - border->top()));
 
-        if (innerSourceRect != d->oldInnerSourceRect || innerTargetRect != d->oldInnerTargetRect)
+        QSizeF newSize(width(), height());
+        if (innerSourceRect != d->oldInnerSourceRect
+                || innerTargetRect != d->oldInnerTargetRect
+                || newSize != d->oldSize) {
             updateNode = true;
+        }
+
         d->oldInnerSourceRect = innerSourceRect;
         d->oldInnerTargetRect = innerTargetRect;
+        d->oldSize = newSize;
     }
 
     bool updatePixmap = d->pixmapChanged;
diff --git a/src/quick/items/qquickimagebase_p_p.h b/src/quick/items/qquickimagebase_p_p.h
index ec2f0bb73e476de8b8019520b8da701d68ec2e0c..21d11a74481387263f7cde1f95797d77806ab48c 100644
--- a/src/quick/items/qquickimagebase_p_p.h
+++ b/src/quick/items/qquickimagebase_p_p.h
@@ -77,6 +77,7 @@ public:
     qreal devicePixelRatio;
     QRectF oldInnerSourceRect;
     QRectF oldInnerTargetRect;
+    QSizeF oldSize;
     bool async : 1;
     bool cache : 1;
     bool mirror: 1;