diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py
index 4ff2a80639695d6fceb30fb254e1b7a5180c5800..533ce611ce478bc17ec4215da96a01e44ba76e5a 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.py
+++ b/share/qtcreator/gdbmacros/gdbmacros.py
@@ -665,30 +665,31 @@ def qdump__QObject(d, item):
             if d.isExpandedIName(item.iname + ".properties"):
                 with Children(d, [propertyCount, 500]):
                     # Dynamic properties.
-                    dummyType = lookupType("void").pointer().pointer()
-                    namesType = lookupType(d.ns + "QByteArray")
-                    valuesBegin = values["d"]["begin"]
-                    valuesEnd = values["d"]["end"]
-                    valuesArray = values["d"]["array"]
-                    valuesType = lookupType(d.ns + "QVariant")
-                    p = namesArray.cast(dummyType) + namesBegin
-                    q = valuesArray.cast(dummyType) + valuesBegin
-                    for i in xrange(dynamicPropertyCount):
-                        with SubItem(d):
-                            pp = p.cast(namesType.pointer()).dereference();
-                            d.putField("key", encodeByteArray(pp))
-                            d.putField("keyencoded", Hex2EncodedLatin1)
-                            qq = q.cast(valuesType.pointer().pointer())
-                            qq = qq.dereference();
-                            d.putField("addr", cleanAddress(qq))
-                            d.putField("exp", "*('%sQVariant'*)%s"
-                                 % (d.ns, cleanAddress(qq)))
-                            name = "%s.properties.%d" % (item.iname, i)
-                            t = qdump__QVariant(d, Item(qq, name))
-                            # Override the "QVariant (foo)" output
-                            d.putType(t, d.currentTypePriority + 1)
-                        p += 1
-                        q += 1
+                    if dynamicPropertyCount != 0:
+                        dummyType = lookupType("void").pointer().pointer()
+                        namesType = lookupType(d.ns + "QByteArray")
+                        valuesBegin = values["d"]["begin"]
+                        valuesEnd = values["d"]["end"]
+                        valuesArray = values["d"]["array"]
+                        valuesType = lookupType(d.ns + "QVariant")
+                        p = namesArray.cast(dummyType) + namesBegin
+                        q = valuesArray.cast(dummyType) + valuesBegin
+                        for i in xrange(dynamicPropertyCount):
+                            with SubItem(d):
+                                pp = p.cast(namesType.pointer()).dereference();
+                                d.putField("key", encodeByteArray(pp))
+                                d.putField("keyencoded", Hex2EncodedLatin1)
+                                qq = q.cast(valuesType.pointer().pointer())
+                                qq = qq.dereference();
+                                d.putField("addr", cleanAddress(qq))
+                                d.putField("exp", "*('%sQVariant'*)%s"
+                                     % (d.ns, cleanAddress(qq)))
+                                name = "%s.properties.%d" % (item.iname, i)
+                                t = qdump__QVariant(d, Item(qq, name))
+                                # Override the "QVariant (foo)" output
+                                d.putType(t, d.currentTypePriority + 1)
+                            p += 1
+                            q += 1
 
                     # Static properties.
                     propertyData = metaData[7]