diff --git a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp
index 87c31bfad37a8b79de080eb2761058f7315de481..efeb8794ba6b412803dd2317ca1d629e72719a7e 100644
--- a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp
+++ b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp
@@ -382,7 +382,12 @@ void TextToModelMerger::syncNode(ModelNode &modelNode,
             } else {
                 if (isValidPropertyForNode(modelNode, astPropertyName)) {
                     AbstractProperty modelProperty = modelNode.property(astPropertyName);
-                    syncNodeProperty(modelProperty, binding, context, differenceHandler);
+                    if (modelProperty.metaInfo().isListProperty()) {
+                        NodeListProperty listProperty = modelProperty.toNodeListProperty();
+                        syncNodeListProperty(listProperty, QList<QmlJS::AST::UiObjectMember*>() << member, context, differenceHandler);
+                    } else {
+                        syncNodeProperty(modelProperty, binding, context, differenceHandler);
+                    }
                     modelPropertyNames.remove(astPropertyName);
                 } else {
                     qWarning() << "Skipping invalid node property" << astPropertyName