diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
index 4e0f19c4b5648140e96a1b5ef6a2e99c4b554a0b..ee55ff4edd9a1885d3d47caaefc4c5f7a1fb547c 100644
--- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
@@ -314,7 +314,7 @@ void  DragTool::move(QPointF scenePos)
    /* if (event->modifiers().testFlag(Qt::ControlModifier) != view()->isSnapButtonChecked())
         useSnapping = MoveManipulator::UseSnapping;*/
 
-    m_moveManipulator.update(scenePos, useSnapping);
+    m_moveManipulator.update(scenePos, useSnapping, MoveManipulator::UseBaseState);
 }
 
 
diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
index 80449c8778d817a30c024089c1d3045a237a4528..b318a3037f2bf7882c8dec054f24fb4bb1f0fa43 100644
--- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
@@ -200,7 +200,7 @@ QList<QRectF> MoveManipulator::tanslatedBoundingRects(const QList<QRectF> &bound
 /*
   /brief updates the position of the items.
 */
-void MoveManipulator::update(const QPointF& updatePoint, Snapping useSnapping)
+void MoveManipulator::update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated)
 {
     deleteSnapLines(); //Since they position is changed and the item is moved the snapping lines are
                        //are obsolete. The new updated snapping lines (color and visibility) will be
@@ -226,36 +226,41 @@ void MoveManipulator::update(const QPointF& updatePoint, Snapping useSnapping)
 
         foreach (FormEditorItem* item, m_itemList) {
             QPointF positionInContainerSpace(m_beginPositionHash.value(item) + offsetVector);
-            QmlAnchors anchors(item->qmlItemNode().anchors());
 
-            if (anchors.instanceHasAnchor(AnchorLine::Top)) {
-               anchors.setMargin(AnchorLine::Top, m_beginTopMarginHash.value(item) + offsetVector.y());
-            }
+            // don't support anchors for base state because it is not needed by the droptool
+            if (stateToBeManipulated == UseActualState) {
+                QmlAnchors anchors(item->qmlItemNode().anchors());
 
-            if (anchors.instanceHasAnchor(AnchorLine::Left)) {
-               anchors.setMargin(AnchorLine::Left, m_beginLeftMarginHash.value(item) + offsetVector.x());
-            }
+                if (anchors.instanceHasAnchor(AnchorLine::Top)) {
+                    anchors.setMargin(AnchorLine::Top, m_beginTopMarginHash.value(item) + offsetVector.y());
+                }
 
-            if (anchors.instanceHasAnchor(AnchorLine::Bottom)) {
-               anchors.setMargin(AnchorLine::Bottom, m_beginBottomMarginHash.value(item) - offsetVector.y());
-            }
-
-            if (anchors.instanceHasAnchor(AnchorLine::Right)) {
-               anchors.setMargin(AnchorLine::Right, m_beginRightMarginHash.value(item) - offsetVector.x());
-            }
+                if (anchors.instanceHasAnchor(AnchorLine::Left)) {
+                    anchors.setMargin(AnchorLine::Left, m_beginLeftMarginHash.value(item) + offsetVector.x());
+                }
 
-            if (anchors.instanceHasAnchor(AnchorLine::HorizontalCenter)) {
-               anchors.setMargin(AnchorLine::HorizontalCenter, m_beginHorizontalCenterHash.value(item) + offsetVector.x());
-            }
+                if (anchors.instanceHasAnchor(AnchorLine::Bottom)) {
+                    anchors.setMargin(AnchorLine::Bottom, m_beginBottomMarginHash.value(item) - offsetVector.y());
+                }
 
-            if (anchors.instanceHasAnchor(AnchorLine::VerticalCenter)) {
-               anchors.setMargin(AnchorLine::VerticalCenter, m_beginVerticalCenterHash.value(item) + offsetVector.y());
-            }
+                if (anchors.instanceHasAnchor(AnchorLine::Right)) {
+                    anchors.setMargin(AnchorLine::Right, m_beginRightMarginHash.value(item) - offsetVector.x());
+                }
 
-            item->qmlItemNode().setPosition(positionInContainerSpace);
-        }
+                if (anchors.instanceHasAnchor(AnchorLine::HorizontalCenter)) {
+                    anchors.setMargin(AnchorLine::HorizontalCenter, m_beginHorizontalCenterHash.value(item) + offsetVector.x());
+                }
 
+                if (anchors.instanceHasAnchor(AnchorLine::VerticalCenter)) {
+                    anchors.setMargin(AnchorLine::VerticalCenter, m_beginVerticalCenterHash.value(item) + offsetVector.y());
+                }
 
+                item->qmlItemNode().setPosition(positionInContainerSpace);
+            } else {
+                item->qmlItemNode().modelNode().variantProperty("x").setValue(qRound(positionInContainerSpace.x()));
+                item->qmlItemNode().modelNode().variantProperty("y").setValue(qRound(positionInContainerSpace.y()));
+            }
+        }
     }
 }
 
diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.h b/src/plugins/qmldesigner/components/formeditor/movemanipulator.h
index eb6fb221ea613717002d9920717df481f62805dd..976a4e71ac02a92ae61f170f1066403b33b00cc8 100644
--- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.h
+++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.h
@@ -57,13 +57,18 @@ public:
         NoSnapping
     };
 
+    enum State {
+        UseActualState,
+        UseBaseState
+    };
+
     MoveManipulator(LayerItem *layerItem, FormEditorView *view);
     ~MoveManipulator();
     void setItems(const QList<FormEditorItem*> &itemList);
     void setItem(FormEditorItem* item);
 
     void begin(const QPointF& beginPoint);
-    void update(const QPointF& updatePoint, Snapping useSnapping);
+    void update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated = UseActualState);
     void reparentTo(FormEditorItem *newParent);
     void end(const QPointF& endPoint);