diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
index 67c1e3cd586a2d082b506e2bdd63c330a6f3ea46..abfe769635cf325b4832df359b78ec34648166a4 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
@@ -261,7 +261,15 @@ void StatesEditorView::nodeAboutToBeRemoved(const ModelNode &removedNode)
           && QmlModelState(removedNode).isValid()) {
         removeModelState(removedNode);
     }
+
     QmlModelView::nodeAboutToBeRemoved(removedNode);
+
+    if (QmlModelState(removedNode).isValid()) {
+        startUpdateTimer(modelStateIndex(removedNode) + 1, 0);
+    } else { //a change to the base state update all
+        for (int i = 0; i < m_modelStates.count(); ++i)
+            startUpdateTimer(i, 0);
+    }
 }