diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp
index 028bdc32f432eaeb39281d55d446d39fb807bc86..284e2b88618521aee45e63c49a7b805e8fc1f77d 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp
@@ -166,6 +166,10 @@ StatesEditorWidget::StatesEditorWidget(QWidget *parent):
 
     m_d->listView->rootContext()->setContextProperty(QLatin1String("statesEditorModel"), m_d->statesEditorModel.data());
 
+    // Work around ASSERT in the internal QGraphicsScene that happens when
+    // the scene is created + items set dirty in one event loop run (BAUHAUS-459)
+    QApplication::processEvents();
+
     m_d->listView->setSource(QUrl("qrc:/stateseditor/stateslist.qml"));
 
     if (!m_d->listView->rootObject())