diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py
index 141c9a2ff5969e400b2b144f87cf0ee92e1470a3..71c1682f4ae4ca059374f7725310d1c1991e0ed2 100644
--- a/share/qtcreator/dumper/dumper.py
+++ b/share/qtcreator/dumper/dumper.py
@@ -265,6 +265,10 @@ movableTypes = set([
     "QXmlStreamNotationDeclaration", "QXmlStreamEntityDeclaration"
 ])
 
+movableTypes5 = set([
+    "QStringList"
+])
+
 
 
 class DumperBase:
diff --git a/share/qtcreator/dumper/gbridge.py b/share/qtcreator/dumper/gbridge.py
index 1437e66b01f31cc704ae206d801cede1dea2ec77..a53961ca9f30e82ad9dc9f0b21007f289fbc02d7 100644
--- a/share/qtcreator/dumper/gbridge.py
+++ b/share/qtcreator/dumper/gbridge.py
@@ -1414,7 +1414,10 @@ class Dumper(DumperBase):
             return True
         if self.isSimpleType(type):
             return True
-        return self.stripNamespaceFromType(str(type)) in movableTypes
+        typeName = self.stripNamespaceFromType(str(type))
+        if typeName in movableTypes:
+            return True
+        return self.qtVersion() >= 0x050000 and typeName in movableTypes5
 
     def putIntItem(self, name, value):
         with SubItem(self, name):
diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp
index 1b2458d6694850e0a1d77d7c788028d2353a0b87..589333064ab1a5b201c5966e0bd2b356dea85b0c 100644
--- a/tests/auto/debugger/tst_dumpers.cpp
+++ b/tests/auto/debugger/tst_dumpers.cpp
@@ -1618,6 +1618,19 @@ void tst_Dumpers::dumper_data()
                % Check("l.0", "[0]", "101", "unsigned int")
                % Check("l.2", "[2]", "102", "unsigned int");
 
+    QTest::newRow("QListStringList")
+            << Data("#include <QStringList>\n",
+                    "QStringList l;\n"
+                    "l.append(\"aaa\");\n"
+                    "QList<QStringList> ll;\n"
+                    "ll.append(l);\n"
+                    "ll.append(l);\n")
+               % CoreProfile()
+               % Check("ll", "<2 items>", "@QList<@QStringList>")
+               % Check("l", "<1 items>", "@QStringList")
+               % Check("ll.1", "[1]", "<1 items>", "@QStringList")
+               % Check("ll.1.0", "[0]", "\"aaa\"", "@QString");
+
     QTest::newRow("QListUShort")
             << Data("#include <QList>\n",
                     "QList<ushort> l0,l;\n"