diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
index 2bf7f0e368514a6f1e3d10d90280555eff6bc668..38ac4b7db1b7f75e706899b143a5d28ca2faff6b 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
@@ -186,6 +186,7 @@ void StatesEditorView::modelAboutToBeDetached(Model *model)
 
 void StatesEditorView::propertiesAboutToBeRemoved(const QList<AbstractProperty>& propertyList)
 {
+    QmlModelView::propertiesAboutToBeRemoved(propertyList);
     foreach (const AbstractProperty &property, propertyList) {
         // remove all states except base state
         if ((property.name()=="states") && (property.parentModelNode().isRootNode())) {
@@ -197,6 +198,9 @@ void StatesEditorView::propertiesAboutToBeRemoved(const QList<AbstractProperty>&
             ModelNode node (property.parentModelNode().parentProperty().parentModelNode());
             if (QmlModelState(node).isValid()) {
                 startUpdateTimer(modelStateIndex(node) + 1, 0);
+            } else { //a change to the base state update all
+                for (int i = 0; i < m_modelStates.count(); ++i)
+                    startUpdateTimer(i, 0);
             }
         }
     }