diff --git a/src/plugins/qmldesigner/core/model/modelmerger.cpp b/src/plugins/qmldesigner/core/model/modelmerger.cpp
index 5ac8dafa6ea7fb354878a81e1cfe298ac38739b7..7e9290cda7669c7526357f82a6048115e561a28c 100644
--- a/src/plugins/qmldesigner/core/model/modelmerger.cpp
+++ b/src/plugins/qmldesigner/core/model/modelmerger.cpp
@@ -108,7 +108,7 @@ static void setupIdRenamingHash(const ModelNode &modelNode, QHash<QString, QStri
             int number = 1;
             splitIdInBaseNameAndNumber(newId, &baseId, &number);
 
-            while (view->hasId(newId) || idRenamingHash.contains(newId)) {
+            while (view->hasId(newId) || idRenamingHash.values().contains(newId)) {
                 newId = baseId + QString::number(number);
                 number++;
             }
@@ -160,6 +160,7 @@ ModelNode ModelMerger::insertModel(const ModelNode &modelNode)
 
     QHash<QString, QString> idRenamingHash;
     setupIdRenamingHash(modelNode, idRenamingHash, view());
+    qDebug() << idRenamingHash;
     ModelNode newNode(createNodeFromNode(modelNode, idRenamingHash, view()));
 
     return newNode;
diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
index 2d5123fcbdcd65b95e7a12e3984e9386a4f9c9a0..037ce1ae1aef9a3a03b2c1f46b7bab513037266d 100644
--- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
@@ -2751,8 +2751,6 @@ void TestCore::testRewriterFirstDefinitionInside()
 
 void TestCore::testCopyModelRewriter1()
 {
-    QSKIP("Fix me!!! Task BaAUHAUS-393", SkipAll);
-
     const QLatin1String qmlString("\n"
                                   "import Qt 4.6\n"
                                   "\n"
@@ -2865,20 +2863,20 @@ void TestCore::testCopyModelRewriter1()
         "            x: 10\n"
         "            y: 10\n"
         "            Rectangle {\n"
-        "                id: rectangle11\n"
+        "                id: rectangle4\n"
         "                x: 10\n"
         "                y: 10\n"
         "            }\n"
         "\n"
         "            Rectangle {\n"
-        "                id: rectangle21\n"
+        "                id: rectangle5\n"
         "                x: 100\n"
         "                y: 100\n"
         "                anchors.fill: root1\n"
         "            }\n"
         "\n"
         "            Rectangle {\n"
-        "                id: rectangle31\n"
+        "                id: rectangle6\n"
         "                x: 140\n"
         "                y: 180\n"
         "                gradient: Gradient {\n"