diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp
index 5a97f77e5650051dcf61a6a6628a21c637d9cd59..934451e825ca22632e16379662d66b4f6f8e911b 100644
--- a/src/quick/items/qquicktext.cpp
+++ b/src/quick/items/qquicktext.cpp
@@ -527,7 +527,7 @@ void QQuickTextPrivate::updateSize()
         }
         if (internalWidthUpdate)
             return;
-        if (wrapMode != QQuickText::NoWrap && q->widthValid())
+        if (q->widthValid() && (wrapMode != QQuickText::NoWrap || extra->doc->idealWidth() < q->width()))
             extra->doc->setTextWidth(q->width());
         else
             extra->doc->setTextWidth(extra->doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug)