diff --git a/src/plugins/qmldesigner/designercore/include/model.h b/src/plugins/qmldesigner/designercore/include/model.h
index e799907a19043f4f35f8f2037cd9e31d9b33235f..6af6ffacf577a01edd563d07a4346f0b64929244 100644
--- a/src/plugins/qmldesigner/designercore/include/model.h
+++ b/src/plugins/qmldesigner/designercore/include/model.h
@@ -58,6 +58,7 @@ class NodeAnchors;
 class AbstractProperty;
 class RewriterView;
 class NodeInstanceView;
+class TextModifier;
 
 typedef QList<QPair<PropertyName, QVariant> > PropertyListType;
 
@@ -107,6 +108,9 @@ public:
 
     Model *metaInfoProxyModel();
 
+    TextModifier *textModifier() const;
+    void setTextModifier(TextModifier *textModifier);
+
 protected:
     Model();
 
diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp
index b35d0a5e2d18709bbdc43efc089ea1c9ac2f25a3..660855bc99f654b824e62a921454b64877b81d29 100644
--- a/src/plugins/qmldesigner/designercore/model/model.cpp
+++ b/src/plugins/qmldesigner/designercore/model/model.cpp
@@ -57,6 +57,7 @@
 #include "rewriterview.h"
 #include "rewritingexception.h"
 #include "invalididexception.h"
+#include "textmodifier.h"
 
 /*!
 \defgroup CoreModel
@@ -1798,6 +1799,16 @@ Model *Model::metaInfoProxyModel()
         return this;
 }
 
+TextModifier *Model::textModifier() const
+{
+    return d->m_textModifier.data();
+}
+
+void Model::setTextModifier(TextModifier *textModifier)
+{
+    d->m_textModifier = textModifier;
+}
+
 #if 0
 /*!
  \brief Creates a new empty model
diff --git a/src/plugins/qmldesigner/designercore/model/model_p.h b/src/plugins/qmldesigner/designercore/model/model_p.h
index ae0f156eb56af4586dd18201e897546af6513f1e..0b797a419c601d0ae06c1d6dd40a73232570ad56 100644
--- a/src/plugins/qmldesigner/designercore/model/model_p.h
+++ b/src/plugins/qmldesigner/designercore/model/model_p.h
@@ -246,6 +246,7 @@ private:
     QUrl m_fileUrl;
     QWeakPointer<RewriterView> m_rewriterView;
     QWeakPointer<NodeInstanceView> m_nodeInstanceView;
+    QWeakPointer<TextModifier> m_textModifier;
     QWeakPointer<Model> m_metaInfoProxyModel;
     bool m_writeLock;
     qint32 m_internalIdCounter;
diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
index 5e84c216fbdac42b445ac2928fd5178483f7db55..7d113c3f4dc749bcfaf2bd44221773d478e25bd9 100644
--- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
@@ -149,6 +149,9 @@ Internal::TextToModelMerger *RewriterView::textToModelMerger() const
 
 void RewriterView::modelAttached(Model *model)
 {
+    if (model && model->textModifier())
+        setTextModifier(model->textModifier());
+
     AbstractView::modelAttached(model);
 
     ModelAmender differenceHandler(m_textToModelMerger.data());