diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index caf472a12f52eea53ab462331e20dc972e7dd141..7caee728108c365bfa7d580ab88b3f8e71563ae7 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -296,7 +296,8 @@ const Value *QmlObjectValue::propertyValue(const QMetaProperty &prop) const
     } break;
 
     case QMetaType::QPoint:
-    case QMetaType::QPointF: {
+    case QMetaType::QPointF:
+    case QMetaType::QVector2D: {
         // ### cache
         ObjectValue *object = engine()->newObject(/*prototype =*/ 0);
         object->setProperty("x", engine()->numberValue());
@@ -315,6 +316,15 @@ const Value *QmlObjectValue::propertyValue(const QMetaProperty &prop) const
         value = object;
     } break;
 
+    case QMetaType::QVector3D: {
+        // ### cache
+        ObjectValue *object = engine()->newObject(/*prototype =*/ 0);
+        object->setProperty("x", engine()->numberValue());
+        object->setProperty("y", engine()->numberValue());
+        object->setProperty("z", engine()->numberValue());
+        value = object;
+    } break;
+
     default:
         break;
     } // end of switch