diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py
index 600e99477d2b9376491a4ea3031a8d69c8a956f1..783a0efb59b223ec883ffd7b74c7bcef6e68507f 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 eb4e338aff0cf9e28ecde38e2f873b97f48488b2..03c191f9a0fbdf647f6136e0a2c03f65af91ad82 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 ";
 }