diff --git a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp
index 7646865cb8d4029ceefd61c02d3df104aae15694..8c8d2140b04f86709ff1b2d124931fc211d441de 100644
--- a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp
+++ b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp
@@ -129,11 +129,19 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, const QmlDomObject &domOb
             domObjectId = domIdProperty.value().toLiteral().literal();
 
         if (domObjectId.isEmpty()) {
-            if (!modelNode.id().isEmpty())
+            if (!modelNode.id().isEmpty()) {
+                ModelNode existingNodeWithId = m_rewriterView->modelNodeForId(domObjectId);
+                if (existingNodeWithId.isValid())
+                    existingNodeWithId.setId(QString());
                 differenceHandler.idsDiffer(modelNode, domObjectId);
+            }
         } else {
-            if (modelNode.id() != domObjectId)
+            if (modelNode.id() != domObjectId) {
+                ModelNode existingNodeWithId = m_rewriterView->modelNodeForId(domObjectId);
+                if (existingNodeWithId.isValid())
+                    existingNodeWithId.setId(QString());
                 differenceHandler.idsDiffer(modelNode, domObjectId);
+            }
         }
     }