diff --git a/src/plugins/qmldesigner/components/integration/designdocument.cpp b/src/plugins/qmldesigner/components/integration/designdocument.cpp
index bd24ed580f2de3d0940b8d94a4ef2a3f5e6b9cf8..c75988a2ed595d16edde6dd278ab7dae4d94bbb1 100644
--- a/src/plugins/qmldesigner/components/integration/designdocument.cpp
+++ b/src/plugins/qmldesigner/components/integration/designdocument.cpp
@@ -46,6 +46,7 @@
 #include <rewritingexception.h>
 #include <modelnodeoperations.h>
 #include <qmldesignerplugin.h>
+#include <viewmanager.h>
 
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/project.h>
@@ -220,6 +221,11 @@ bool DesignDocument::loadInFileComponent(const ModelNode &componentNode)
     return true;
 }
 
+QmlModelView *DesignDocument::qmlModelView()
+{
+    return viewManager().qmlModelView();
+}
+
 /*!
   Returns any errors that happened when parsing the latest qml file.
   */
@@ -362,7 +368,7 @@ void DesignDocument::goIntoComponent()
 
     QList<ModelNode> selectedNodes;
     if (rewriterView())
-        selectedNodes = rewriterView()->selectedModelNodes();
+        selectedNodes = qmlModelView()->selectedModelNodes();
 
     if (selectedNodes.count() == 1) {
         viewManager().setComponentNode(selectedNodes.first());
@@ -433,7 +439,7 @@ void DesignDocument::deleteSelected()
 
     try {
         RewriterTransaction transaction(rewriterView());
-        QList<ModelNode> toDelete = rewriterView()->selectedModelNodes();
+        QList<ModelNode> toDelete = qmlModelView()->selectedModelNodes();
         foreach (ModelNode node, toDelete) {
             if (node.isValid() && !node.isRootNode() && QmlObjectNode(node).isValid())
                 QmlObjectNode(node).destroy();
@@ -562,8 +568,6 @@ void DesignDocument::paste()
 
     if (rootNode.id() == "designer__Selection") {
         QList<ModelNode> selectedNodes = rootNode.allDirectSubModelNodes();
-        qDebug() << rootNode;
-        qDebug() << selectedNodes;
         pasteModel->detachView(&view);
         m_currentModel->attachView(&view);
 
diff --git a/src/plugins/qmldesigner/components/integration/designdocument.h b/src/plugins/qmldesigner/components/integration/designdocument.h
index 565082d74089d96a070cad308e0aa18bd49f0e54..5296c538a8d6ef91a4a3210908e6c9a895c2ecca 100644
--- a/src/plugins/qmldesigner/components/integration/designdocument.h
+++ b/src/plugins/qmldesigner/components/integration/designdocument.h
@@ -30,21 +30,12 @@
 #ifndef DesignDocument_h
 #define DesignDocument_h
 
-#include "rewriterview.h"
-
 #include <model.h>
 #include <rewriterview.h>
-#include <itemlibraryview.h>
-#include <navigatorview.h>
-#include <stateseditorview.h>
-#include <formeditorview.h>
-#include <propertyeditor.h>
-#include <componentview.h>
 #include <basetexteditmodifier.h>
 #include <componenttextmodifier.h>
 #include <subcomponentmanager.h>
 #include <model/viewlogger.h>
-#include <viewmanager.h>
 
 #include <QObject>
 #include <QString>
@@ -66,6 +57,8 @@ class ModelNode;
 class TextModifier;
 class QmlObjectNode;
 class CrumbleBarInfo;
+class ViewManager;
+class QmlModelView;
 
 class DesignDocument: public QObject
 {
@@ -147,6 +140,8 @@ private: // functions
 
     bool loadInFileComponent(const ModelNode &componentNode);
 
+    QmlModelView *qmlModelView();
+
 private: // variables
     QWeakPointer<QStackedWidget> m_stackedWidget;
     QWeakPointer<Model> m_documentModel;
diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h
index 536dd3d78385059d57f9f35664746f487f46469b..b38b964ea4b6ba004577c2626d56a9283810b9d0 100644
--- a/src/plugins/qmldesigner/designercore/include/viewmanager.h
+++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h
@@ -80,6 +80,9 @@ public:
     void pushInFileComponentOnCrambleBar(const QString &componentId);
     void nextFileIsCalledInternally();
 
+    //used by DesignDocument ### find a better solution
+    QmlModelView *qmlModelView();
+
 private: // functions
     Q_DISABLE_COPY(ViewManager)
 
diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp
index 24eda7730d4fd7ac2c374568bf26fb404e84bf4b..699081c49a8401214be85be5b56abb86d114c68b 100644
--- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp
+++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp
@@ -188,6 +188,11 @@ void ViewManager::nextFileIsCalledInternally()
     m_formEditorView.formEditorWidget()->formEditorCrumbleBar()->nextFileIsCalledInternally();
 }
 
+ QmlModelView *ViewManager::qmlModelView()
+ {
+     return &m_formEditorView;
+ }
+
 Model *ViewManager::currentModel() const
 {
     return currentDesignDocument()->currentModel();