diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
index 87b65ed850689dc5e29724a3d29c6565e15acefe..ac65c0a00cf6d63e1b42cf0cbad285501b282a58 100644
--- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
+++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
@@ -531,6 +531,7 @@ void DesignDocumentController::deleteSelected()
         return;
 
     if (m_d->formEditorView) {
+        RewriterTransaction transaction(m_d->formEditorView.data());
         QList<ModelNode> toDelete = m_d->formEditorView->selectedModelNodes();
         foreach (ModelNode node, toDelete) {
             if (node.isValid() && !node.isRootNode() && QmlObjectNode(node).isValid())
@@ -649,6 +650,8 @@ void DesignDocumentController::paste()
 
         QList<ModelNode> pastedNodeList;
 
+        RewriterTransaction transaction(m_d->formEditorView.data());
+
         foreach (const ModelNode &node, selectedNodes) {
             QString defaultProperty(targetNode.metaInfo().defaultProperty());
             ModelNode pastedNode(view.insertModel(node));
@@ -658,6 +661,8 @@ void DesignDocumentController::paste()
 
         view.setSelectedModelNodes(pastedNodeList);
     } else {
+        RewriterTransaction transaction(m_d->formEditorView.data());
+
         model->detachView(&view);
         m_d->model->attachView(&view);
         ModelNode pastedNode(view.insertModel(rootNode));