diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index f8dcc2372c6def749275ef93ca96db93cfbe654f..cea3191f7c1a0f4ac08697d2a2ce45a88aed2ae9 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -1664,8 +1664,8 @@ QmlV8ObjectData QmlEnginePrivate::extractData(const QVariant &data) const
             objectData.type = QByteArray("undefined");
             objectData.value = QVariant(_("undefined"));
 
-        } else if (type == _("null")) {
-            objectData.type = QByteArray("null");
+        } else if (type == _("null")) { // Deprecated. typeof(null) == "object" in JavaScript
+            objectData.type = QByteArray("object");
             objectData.value= QVariant(_("null"));
 
         } else if (type == _("boolean")) {
@@ -1683,9 +1683,12 @@ QmlV8ObjectData QmlEnginePrivate::extractData(const QVariant &data) const
 
         } else if (type == _("object")) {
             objectData.type = QByteArray("object");
-            objectData.value = dataMap.value(_("className"));
-            objectData.properties = dataMap.value(_("properties")).toList();
+            // ignore "className": it doesn't make any sense.
 
+            if (dataMap.contains(_("properties")))
+                objectData.properties = dataMap.value(_("properties")).toList();
+            else if (dataMap.value(_("value")).isNull())
+                objectData.value = QVariant(_("null")); // Yes, null is an object.
         } else if (type == _("function")) {
             objectData.type = QByteArray("function");
             objectData.value = dataMap.value(_(NAME));