diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
index b986eef73bf99da269488692c208fc0522a72334..a309e6b285646a5ccc89ba019f54c20da2c7db0c 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
@@ -964,9 +964,9 @@ InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand
     return InformationChangedCommand(createInformationVector(instanceList, initial));
 }
 
-static bool supportedVariantType(QVariant::Type type)
+static bool supportedVariantType(int type)
 {
-    return type < QVariant::UserType && type != QVariant::Icon;
+    return type < QVariant::LastCoreType && type != QMetaType::QObjectStar;
 }
 
 ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QList<ServerNodeInstance> &instanceList) const
@@ -976,7 +976,7 @@ ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QList<
     foreach (const ServerNodeInstance &instance, instanceList) {
         foreach (const QString &propertyName, instance.propertyNames()) {
             QVariant propertyValue = instance.property(propertyName);
-            if (supportedVariantType(propertyValue.type()))
+            if (supportedVariantType(propertyValue.userType()))
                 valueVector.append(PropertyValueContainer(instance.instanceId(), propertyName, propertyValue, QString()));
         }
     }
@@ -1005,8 +1005,9 @@ ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QVecto
 
         if ( instance.isValid()) {
             QVariant propertyValue = instance.property(propertyName);
-            if (supportedVariantType(propertyValue.type()))
+            if (QMetaType::isRegistered(propertyValue.userType()) && supportedVariantType(propertyValue.type())) {
                 valueVector.append(PropertyValueContainer(instance.instanceId(), propertyName, propertyValue, QString()));
+            }
         }
     }