diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py
index d8517218ba69ca27d7eb1b89ff656c8a7f3df014..9ccc1c54b003c512a82d424d5f44dad5e8164dd5 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.py
+++ b/share/qtcreator/gdbmacros/gdbmacros.py
@@ -1421,6 +1421,7 @@ def qdump__QStringList(d, item):
     if d.isExpanded(item):
         innerType = gdb.lookup_type(d.ns + "QString")
         ptr = gdb.Value(d_ptr["array"]).cast(innerType.pointer())
+        ptr += d_ptr["begin"]
         with Children(d, [size, 1000], innerType):
             for i in d.childRange():
                 d.putItem(Item(ptr.dereference(), item.iname, i))
diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp
index 1705327ffa59084ad55266868dbcfd7a6d594ec9..732e2c862ddfee9388236fc005c66afd2579e543 100644
--- a/tests/manual/gdbdebugger/simple/app.cpp
+++ b/tests/manual/gdbdebugger/simple/app.cpp
@@ -1200,6 +1200,7 @@ void testQStringList()
     l << "Hello ";
     l << " big, ";
     l << " fat ";
+    l.takeFirst();
     l << " World ";
 }