diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py
index 34aa82e59b1f7084cdd25262b1fd4027411d95f8..363bce08c7c326bbb8c59bc5594d94c429512964 100644
--- a/share/qtcreator/dumper/qttypes.py
+++ b/share/qtcreator/dumper/qttypes.py
@@ -1397,7 +1397,8 @@ def qdump__QStringList(d, value):
     d.putNumChild(size)
     if d.isExpanded():
         innerType = lookupType(d.ns + "QString")
-        d.putArrayData(innerType, d_ptr["array"], size, 0)
+        innerTypePP = innerType.pointer().pointer()
+        d.putArrayData(innerType, d_ptr["array"].cast(innerTypePP) + begin, size, 0)
 
 
 def qdump__QTemporaryFile(d, value):
diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp
index 0423d29f8fe0539394255c14d2bb395785d83de2..8c108aad3aa1f1401788868ee39273f22b154d3f 100644
--- a/tests/manual/debugger/simple/simple_test_app.cpp
+++ b/tests/manual/debugger/simple/simple_test_app.cpp
@@ -1152,6 +1152,51 @@ namespace qlist {
         dummyStatement(&big);
     }
 
+    void testQListIntTakeFirst()
+    {
+        QList<int> l;
+        l.append(0);
+        l.append(1);
+        l.append(2);
+        l.takeFirst();
+        BREAK_HERE;
+        // Expand l.
+        // Check l <2 items> QList<int>.
+        // Check l.0 1 int.
+        // Continue.
+        dummyStatement(&l);
+    }
+
+    void testQListStringTakeFirst()
+    {
+        QList<QString> l;
+        l.append("0");
+        l.append("1");
+        l.append("2");
+        l.takeFirst();
+        BREAK_HERE;
+        // Expand l.
+        // Check l <2 items> QList<QString>.
+        // Check l.0 "1" QString.
+        // Continue.
+        dummyStatement(&l);
+    }
+
+    void testQStringListTakeFirst()
+    {
+        QStringList l;
+        l.append("0");
+        l.append("1");
+        l.append("2");
+        l.takeFirst();
+        BREAK_HERE;
+        // Expand l.
+        // Check l <2 items> QStringList.
+        // Check l.0 "1" QString.
+        // Continue.
+        dummyStatement(&l);
+    }
+
     void testQListIntStar()
     {
         QList<int *> l;
@@ -1320,6 +1365,9 @@ namespace qlist {
         testQListStdString();
         testQListFoo();
         testQListReverse();
+        testQListIntTakeFirst();
+        testQListStringTakeFirst();
+        testQStringListTakeFirst();
     }
 
 } // namespace qlist