diff --git a/src/plugins/qmldesigner/core/model/qmlmodelview.cpp b/src/plugins/qmldesigner/core/model/qmlmodelview.cpp
index f025819f45bf9a5221b9de42186d6ef05b229dc9..9e8fd989742310cdf2d478f480f98b27e92730a7 100644
--- a/src/plugins/qmldesigner/core/model/qmlmodelview.cpp
+++ b/src/plugins/qmldesigner/core/model/qmlmodelview.cpp
@@ -305,10 +305,7 @@ void QmlModelView::activateState(const QmlModelState &state)
     } else {
         nodeInstanceView()->activateState(newStateInstance);
     }
-
-    m_state = state;
-
-    stateChanged(state, oldState);}
+}
 
 void QmlModelView::changeToState(const ModelNode &node, const QString &stateName)
 {
@@ -323,7 +320,8 @@ void QmlModelView::changeToState(const ModelNode &node, const QString &stateName
     QmlModelState oldState = m_state;
 
     if (newState.isValid() && oldState != newState) {
-        activateState(newState);
+        m_state = newState;
+        stateChanged(newState, oldState);
     }
 }
 
@@ -340,7 +338,7 @@ void QmlModelView::otherPropertyChanged(const QmlObjectNode &/*qmlObjectNode*/,
 {
 }
 
-void  QmlModelView::stateChanged(const QmlModelState &/*newQmlModelState*/, const QmlModelState &/*oldQmlModelState*/)
+void  QmlModelView::stateChanged(const QmlModelState &newQmlModelState, const QmlModelState &/*oldQmlModelState*/)
 {
 }