diff --git a/src/corelib/tools/qstringbuilder.h b/src/corelib/tools/qstringbuilder.h
index 3d41aeee18e4718c125ac2e963a75717355c3d29..69bd344f478d5d49d9ea083a669b7f2dc49c02f3 100644
--- a/src/corelib/tools/qstringbuilder.h
+++ b/src/corelib/tools/qstringbuilder.h
@@ -236,9 +236,9 @@ template <> struct QConcatenable<QLatin1String> : private QAbstractConcatenable
     }
     static inline void appendTo(const QLatin1String a, char *&out)
     {
-        if (a.data()) {
-            for (const char *s = a.data(); *s; )
-                *out++ = *s++;
+        if (const char *data = a.data()) {
+            memcpy(out, data, a.size());
+            out += a.size();
         }
     }
 };