diff --git a/src/libs/qmljsdebugger/include/qdeclarativedesignview.h b/src/libs/qmljsdebugger/include/qdeclarativedesignview.h
index 4e4a9c7c4649419d478479728cbce67d980bc228..764ccb3395969e7f0ced50e1ed28509989c6911c 100644
--- a/src/libs/qmljsdebugger/include/qdeclarativedesignview.h
+++ b/src/libs/qmljsdebugger/include/qdeclarativedesignview.h
@@ -95,6 +95,7 @@ protected:
     void mouseDoubleClickEvent(QMouseEvent *event);
     void wheelEvent(QWheelEvent *event);
 
+    void setSelectedItemsForTools(QList<QGraphicsItem *> items);
 private:
     Q_DISABLE_COPY(QDeclarativeDesignView)
     Q_PRIVATE_SLOT(d_func(), void _q_reloadView())
diff --git a/src/libs/qmljsdebugger/qdeclarativedesignview.cpp b/src/libs/qmljsdebugger/qdeclarativedesignview.cpp
index d7270c4db790298bb9a5cc9a8d234e9619b9b04a..51f48abbbab086b16198dc7fe6c43ed986279f5c 100644
--- a/src/libs/qmljsdebugger/qdeclarativedesignview.cpp
+++ b/src/libs/qmljsdebugger/qdeclarativedesignview.cpp
@@ -334,9 +334,6 @@ bool QDeclarativeDesignView::designModeBehavior()
     return data->designModeBehavior;
 }
 
-
-
-
 void QDeclarativeDesignViewPrivate::changeTool(Constants::DesignTool tool, Constants::ToolFlags /*flags*/)
 {
     switch(tool) {
@@ -350,7 +347,7 @@ void QDeclarativeDesignViewPrivate::changeTool(Constants::DesignTool tool, Const
     }
 }
 
-void QDeclarativeDesignViewPrivate::setSelectedItems(QList<QGraphicsItem *> items)
+void QDeclarativeDesignViewPrivate::setSelectedItemsForTools(QList<QGraphicsItem *> items)
 {
     currentSelection.clear();
     foreach(QGraphicsItem *item, items) {
@@ -361,6 +358,11 @@ void QDeclarativeDesignViewPrivate::setSelectedItems(QList<QGraphicsItem *> item
         }
     }
     currentTool->updateSelectedItems();
+}
+
+void QDeclarativeDesignViewPrivate::setSelectedItems(QList<QGraphicsItem *> items)
+{
+    setSelectedItemsForTools(items);
     qmlDesignDebugServer()->setCurrentObjects(AbstractFormEditorTool::toObjectList(items));
 }
 
@@ -591,8 +593,8 @@ void QDeclarativeDesignViewPrivate::_q_onStatusChanged(QDeclarativeView::Status
 {
     if (status == QDeclarativeView::Ready) {
         if (q->rootObject()) {
-            if (data->subcomponentEditorTool->contextIndex() != -1)
-                data->subcomponentEditorTool->clear();
+            if (subcomponentEditorTool->contextIndex() != -1)
+                subcomponentEditorTool->clear();
             subcomponentEditorTool->pushContext(q->rootObject());
             emit q->executionStarted(1.0f);
 
@@ -610,7 +612,7 @@ void QDeclarativeDesignViewPrivate::_q_onCurrentObjectsChanged(QList<QObject*> o
             items << declarativeItem;
     }
 
-    setSelectedItems(items);
+    setSelectedItemsForTools(items);
     clearHighlight();
     highlight(items, QDeclarativeDesignViewPrivate::IgnoreContext);
 }
diff --git a/src/libs/qmljsdebugger/qdeclarativedesignview_p.h b/src/libs/qmljsdebugger/qdeclarativedesignview_p.h
index 39ad149093a19ad39b0dd6b267b0da759256ee53..4555668369cf51c29d98d813873fe1283f252be4 100644
--- a/src/libs/qmljsdebugger/qdeclarativedesignview_p.h
+++ b/src/libs/qmljsdebugger/qdeclarativedesignview_p.h
@@ -93,6 +93,8 @@ public:
     QList<QGraphicsItem*> selectableItems(const QPointF &scenePos) const;
     QList<QGraphicsItem*> selectableItems(const QRectF &sceneRect, Qt::ItemSelectionMode selectionMode) const;
 
+
+    void setSelectedItemsForTools(QList<QGraphicsItem *> items);
     void setSelectedItems(QList<QGraphicsItem *> items);
     QList<QGraphicsItem *> selectedItems();