diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h
index b57c765930dcf6f4b77c5bc1c84e84f6085d8ebd..9dfbaa5851f74ac61fce5134c1e850ccffd0f317 100644
--- a/src/plugins/qmldesigner/designercore/include/modelnode.h
+++ b/src/plugins/qmldesigner/designercore/include/modelnode.h
@@ -90,7 +90,7 @@ public:
     };
 
     ModelNode();
-    ModelNode(const Internal::InternalNodePointer &internalNode, Model *model, AbstractView *view);
+    ModelNode(const Internal::InternalNodePointer &internalNode, Model *model, const AbstractView *view);
     ModelNode(const ModelNode modelNode, AbstractView *view);
     ModelNode(const ModelNode &other);
     ~ModelNode();
diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
index 4c232c7bfba41a95ff12455d300d3c4ef9174fd6..932be459c4778c6ed4babdce4941a3bfcf64d9fd 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp
@@ -77,10 +77,10 @@ All the manipulation functions are generating undo commands internally.
 /*! \brief internal constructor
 
 */
-ModelNode::ModelNode(const InternalNodePointer &internalNode, Model *model, AbstractView *view):
+ModelNode::ModelNode(const InternalNodePointer &internalNode, Model *model, const AbstractView *view):
         m_internalNode(internalNode),
         m_model(model),
-        m_view(view)
+        m_view(const_cast<AbstractView*>(view))
 {
     Q_ASSERT(!m_model || m_view);
 }