diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py
index 2012cef8daa496d8f416b010614bc45c13af3c53..bfb4604b6ca6537694ee09e1d3cace03237525fc 100644
--- a/share/qtcreator/gdbmacros/dumper.py
+++ b/share/qtcreator/gdbmacros/dumper.py
@@ -838,7 +838,7 @@ class FrameCommand(gdb.Command):
         d.typeformats = typeformats
         d.formats = formats
         d.useFancy = useFancy
-        d.passExceptions = "passexceptions" in options
+        d.passExceptions = "pe" in options
         d.autoDerefPointers = "autoderef" in options
         d.ns = qtNamespace()
         d.expandedINames = expandedINames
diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py
index 41ae51b588875cec8a1b6608d971f26b73a309e7..112a0176f0d72276ea0c3627ffacea2457a0ab9f 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.py
+++ b/share/qtcreator/gdbmacros/gdbmacros.py
@@ -1453,9 +1453,9 @@ def qdump__QUrl(d, item):
 
 
 def qdumpHelper__QVariant(d, value):
-    #warn("VARIANT TYPE: %s : " % variantType)
     data = value["d"]["data"]
     variantType = int(value["d"]["type"])
+    #warn("VARIANT TYPE: %s : " % variantType)
     val = None
     inner = ""
     innert = ""
@@ -1597,15 +1597,18 @@ def qdumpHelper__QVariant(d, value):
 
 def qdump__QVariant(d, item):
     val, inner, innert = qdumpHelper__QVariant(d, item.value)
+    #warn("VARIANT DATA: '%s' '%s' '%s': " % (val, inner, innert))
 
-    if len(inner):
-        # Build-in types.
-        #d.putValue("(%s)" % innert)
-        d.putType("%sQVariant (%s)" % (d.ns, innert))
-        d.putNumChild(1)
-        if d.isExpanded(item):
-            with Children(d):
-                d.putItem(Item(val, item.iname, "data", "data"))
+    if len(inner): 
+        innerType = gdb.lookup_type(inner)
+        # FIXME: Why "shared"?
+        if innerType.sizeof > item.value["d"]["data"].type.sizeof:
+            v = item.value["d"]["data"]["shared"]["ptr"] \
+                .cast(innerType.pointer()).dereference()
+        else:
+            v = item.value["d"]["data"].cast(innerType)
+        d.putItemHelper(Item(v, item.iname))
+        d.putType("%sQVariant (%s)" % (d.ns, innert), d.currentTypePriority + 1)
     else:
         # User types.
         d_member = item.value["d"]