diff --git a/src/plugins/qmljseditor/qmljsoutline.cpp b/src/plugins/qmljseditor/qmljsoutline.cpp
index a72e7e31aa1b9980e65cfa840e78ff5946fa514a..cdb9530d8981272fc073ce9cc73f9a6a4351700d 100644
--- a/src/plugins/qmljseditor/qmljsoutline.cpp
+++ b/src/plugins/qmljseditor/qmljsoutline.cpp
@@ -67,6 +67,7 @@ QmlJSOutlineWidget::QmlJSOutlineWidget(QWidget *parent) :
     TextEditor::IOutlineWidget(parent),
     m_treeView(new QmlJSOutlineTreeView(this)),
     m_filterModel(new QmlJSOutlineFilterModel(this)),
+    m_editor(0),
     m_enableCursorSync(true),
     m_blockCursorSync(false)
 {
@@ -93,15 +94,15 @@ void QmlJSOutlineWidget::setEditor(QmlJSTextEditor *editor)
 {
     m_editor = editor;
 
-    m_filterModel->setSourceModel(m_editor.data()->outlineModel());
+    m_filterModel->setSourceModel(m_editor->outlineModel());
     modelUpdated();
 
     connect(m_treeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
             this, SLOT(updateSelectionInText(QItemSelection)));
 
-    connect(m_editor.data(), SIGNAL(outlineModelIndexChanged(QModelIndex)),
+    connect(m_editor, SIGNAL(outlineModelIndexChanged(QModelIndex)),
             this, SLOT(updateSelectionInTree(QModelIndex)));
-    connect(m_editor.data()->outlineModel(), SIGNAL(updated()),
+    connect(m_editor->outlineModel(), SIGNAL(updated()),
             this, SLOT(modelUpdated()));
 }
 
@@ -116,7 +117,7 @@ void QmlJSOutlineWidget::setCursorSynchronization(bool syncWithCursor)
 {
     m_enableCursorSync = syncWithCursor;
     if (m_enableCursorSync)
-        updateSelectionInTree(m_editor.data()->outlineModelIndex());
+        updateSelectionInTree(m_editor->outlineModelIndex());
 }
 
 void QmlJSOutlineWidget::restoreSettings(int position)
@@ -163,11 +164,11 @@ void QmlJSOutlineWidget::updateSelectionInText(const QItemSelection &selection)
         editorManager->cutForwardNavigationHistory();
         editorManager->addCurrentPositionToNavigationHistory();
 
-        QTextCursor textCursor = m_editor.data()->textCursor();
+        QTextCursor textCursor = m_editor->textCursor();
         m_blockCursorSync = true;
         textCursor.setPosition(location.offset);
-        m_editor.data()->setTextCursor(textCursor);
-        m_editor.data()->centerCursor();
+        m_editor->setTextCursor(textCursor);
+        m_editor->centerCursor();
         m_blockCursorSync = false;
     }
 }
diff --git a/src/plugins/qmljseditor/qmljsoutline.h b/src/plugins/qmljseditor/qmljsoutline.h
index eda95d2350d800f9d881c77e045bc7aa6ad51a4b..c54fc36b15b130584c22d0d436992c717ca21249 100644
--- a/src/plugins/qmljseditor/qmljsoutline.h
+++ b/src/plugins/qmljseditor/qmljsoutline.h
@@ -62,7 +62,7 @@ private:
 private:
     QmlJSOutlineTreeView *m_treeView;
     QmlJSOutlineFilterModel *m_filterModel;
-    QWeakPointer<QmlJSTextEditor> m_editor;
+    QmlJSTextEditor *m_editor;
 
     QAction *m_showBindingsAction;