diff --git a/share/qtcreator/qml/qmljsdebugger/editor/selectionindicator.cpp b/share/qtcreator/qml/qmljsdebugger/editor/selectionindicator.cpp
index d6ba81bd7366565a58424e9dbad23e8df7114089..d15eca8ff528cda7bc7eb53560c0a54a14c4c7b6 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/selectionindicator.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/selectionindicator.cpp
@@ -66,7 +66,7 @@ void SelectionIndicator::clear()
         QHashIterator<QGraphicsItem*, QGraphicsPolygonItem *> iter(m_indicatorShapeHash);
         while(iter.hasNext()) {
             iter.next();
-            m_layerItem->scene()->removeItem(iter.value());
+            m_layerItem.data()->scene()->removeItem(iter.value());
             delete iter.value();
         }
     }
@@ -111,7 +111,7 @@ void SelectionIndicator::setItems(const QList<QWeakPointer<QGraphicsObject> > &i
             addBoundingRectToPolygon(item, boundingShapeInSceneSpace);
 
             QRectF boundingRect = m_view->adjustToScreenBoundaries(boundingShapeInSceneSpace.boundingRect());
-            QPolygonF boundingRectInLayerItemSpace = m_layerItem->mapFromScene(boundingRect);
+            QPolygonF boundingRectInLayerItemSpace = m_layerItem.data()->mapFromScene(boundingRect);
 
             QPen pen;
             pen.setColor(QColor(108, 141, 221));
diff --git a/share/qtcreator/qml/qmljsdebugger/editor/selectionrectangle.cpp b/share/qtcreator/qml/qmljsdebugger/editor/selectionrectangle.cpp
index dc8ee26cce4804ad6f911b82eef7a7af9bf5676d..24a4a76441611478468ed61ffd0880958c84618f 100644
--- a/share/qtcreator/qml/qmljsdebugger/editor/selectionrectangle.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/editor/selectionrectangle.cpp
@@ -56,7 +56,7 @@ SelectionRectangle::SelectionRectangle(QGraphicsObject *layerItem)
 SelectionRectangle::~SelectionRectangle()
 {
     if (m_layerItem)
-        m_layerItem->scene()->removeItem(m_controlShape);
+        m_layerItem.data()->scene()->removeItem(m_controlShape);
 }
 
 void SelectionRectangle::clear()
diff --git a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp
index 9d9eace43d47766bc94968e8e497dfb0863ea9d4..f67bbbb74e6d5afda05abb7f5ad1de71ada19b67 100644
--- a/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp
+++ b/share/qtcreator/qml/qmljsdebugger/qdeclarativeviewobserver.cpp
@@ -146,13 +146,13 @@ void QDeclarativeViewObserverPrivate::setViewport(QWidget *widget)
         return;
 
     if (viewport) {
-        viewport->removeEventFilter(q);
+        viewport.data()->removeEventFilter(q);
     }
     viewport = widget;
     if (viewport) {
         // make sure we get mouse move events
-        viewport->setMouseTracking(true);
-        viewport->installEventFilter(q);
+        viewport.data()->setMouseTracking(true);
+        viewport.data()->installEventFilter(q);
     }
 }
 
diff --git a/share/qtcreator/qml/qmljsdebugger/qmljsdebugger-lib.pri b/share/qtcreator/qml/qmljsdebugger/qmljsdebugger-lib.pri
index 271986afa41ed13c5c30ac37af95d26d748b1a2d..0706d8c647b07cc0c0d10a74dae4f6b691a5ba18 100644
--- a/share/qtcreator/qml/qmljsdebugger/qmljsdebugger-lib.pri
+++ b/share/qtcreator/qml/qmljsdebugger/qmljsdebugger-lib.pri
@@ -62,8 +62,6 @@ SOURCES += \
         editor/toolbarcolorbox.cpp
 
     RESOURCES += editor/editor.qrc
-
-    DEFINES += QWEAKPOINTER_ENABLE_ARROW
 }
 
 OTHER_FILES += qmljsdebugger.pri