diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
index a53c967e5443e2042ffa1b8357d78084f1f6ce00..2bf7f0e368514a6f1e3d10d90280555eff6bc668 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
@@ -193,6 +193,11 @@ void StatesEditorView::propertiesAboutToBeRemoved(const QList<AbstractProperty>&
                 if (!state.isBaseState())
                     removeModelState(state);
             }
+        } else {
+            ModelNode node (property.parentModelNode().parentProperty().parentModelNode());
+            if (QmlModelState(node).isValid()) {
+                startUpdateTimer(modelStateIndex(node) + 1, 0);
+            }
         }
     }
 }
@@ -200,12 +205,6 @@ void StatesEditorView::propertiesAboutToBeRemoved(const QList<AbstractProperty>&
 void StatesEditorView::propertiesRemoved(const QList<AbstractProperty>& propertyList)
 {
     QmlModelView::propertiesRemoved(propertyList);
-    foreach (const AbstractProperty &property, propertyList) {
-        ModelNode node (property.parentModelNode().parentProperty().parentModelNode());
-        if (QmlModelState(node).isValid()) {
-            startUpdateTimer(modelStateIndex(node) + 1, 0);
-        }
-    }
 }
 
 void StatesEditorView::variantPropertiesChanged(const QList<VariantProperty>& propertyList, PropertyChangeFlags propertyChange)