diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
index a259390cd198942b598b26180eab8147282ba5ec..772875365bcdf7c8609742c387c7979e6754d1ae 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
@@ -52,7 +52,6 @@ namespace QmlDesigner {
 StatesEditorView::StatesEditorView(QObject *parent) :
         AbstractView(parent),
         m_statesEditorModel(new StatesEditorModel(this)),
-        m_statesEditorWidget(new StatesEditorWidget(this, m_statesEditorModel.data())),
         m_lastIndex(-1)
 {
     Q_ASSERT(m_statesEditorModel);
@@ -61,6 +60,9 @@ StatesEditorView::StatesEditorView(QObject *parent) :
 
 WidgetInfo StatesEditorView::widgetInfo()
 {
+    if (!m_statesEditorWidget)
+        m_statesEditorWidget = new StatesEditorWidget(this, m_statesEditorModel.data());
+
     return createWidgetInfo(m_statesEditorWidget.data(), 0, "StatesEditor", WidgetInfo::TopPane, 0, tr("States Editor"));
 }