diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py
index 317224d52f40c0c6ba56ce3ad1d44201fa39eec6..d49e1682fe0791f7ba3a77a2b11c7db6f4f4c00d 100644
--- a/share/qtcreator/gdbmacros/dumper.py
+++ b/share/qtcreator/gdbmacros/dumper.py
@@ -1326,6 +1326,13 @@ class Dumper:
         nsStrippedType = self.stripNamespaceFromType(
             typedefStrippedType).replace("::", "__")
 
+        # Is this derived from QObject?
+        try:
+            item.value['staticMetaObject']
+            hasMetaObject = True
+        except:
+            hasMetaObject = False
+
         #warn(" STRIPPED: %s" % nsStrippedType)
         #warn(" DUMPERS: %s" % self.dumpers)
         #warn(" DUMPERS: %s" % (nsStrippedType in self.dumpers))
@@ -1336,6 +1343,10 @@ class Dumper:
             self.putValue(value)
             self.putNumChild(0)
 
+        elif hasMetaObject and self.useFancy:
+            self.putType(item.value.type)
+            qdump__QObject(self, item)
+
         elif nsStrippedType in self.dumpers:
             #warn("IS DUMPABLE: %s " % type)
             self.putType(item.value.type)
diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py
index 60869f6e8d885541b70bd1b54520b79f365cc8f5..4db5d3850c9e89ad79829d84dd612bd1432952fd 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.py
+++ b/share/qtcreator/gdbmacros/gdbmacros.py
@@ -578,9 +578,6 @@ def extractCString(table, offset):
     return result
 
 
-def qdump__QWidget(d, item):
-    qdump__QObject(d, item)
-
 def qdump__QObject(d, item):
     #warn("OBJECT: %s " % item.value)
     staticMetaObject = item.value["staticMetaObject"]
@@ -617,15 +614,15 @@ def qdump__QObject(d, item):
     d.putNumChild(4)
     if d.isExpanded(item):
       with Children(d):
+        d.putFields(item)
         # Parent and children.
         d.putItem(Item(d_ptr["parent"], item.iname, "parent", "parent"))
         d.putItem(Item(d_ptr["children"], item.iname, "children", "children"))
 
         # Properties.
         with SubItem(d):
-            #propertyCount = metaData[6]
-            # FIXME: Replace with plain memory accesses.
-            propertyCount = call(mo, "propertyCount()")
+            propertyCount = metaData[6]
+            #propertyCount = call(mo, "propertyCount()")
             #warn("PROPERTY COUNT: %s" % propertyCount)
             propertyData = metaData[7]
             d.putName("properties")