diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py
index 7739536c7639831a2812ef2c7eff6d1429c8a66f..d665f5171685a5ea054982ed81b059afc587ca10 100644
--- a/share/qtcreator/gdbmacros/dumper.py
+++ b/share/qtcreator/gdbmacros/dumper.py
@@ -1327,6 +1327,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))
@@ -1337,6 +1344,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 ab6bceaba6034ee2e12050206dd7d505a9bd480b..49906fe75cb71e2ef563635b783ce2c5c0f4c4ad 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")