diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp
index cde625de50f0507367d796507a352c7f27b88982..5b320814594b194f1dc31b5022f674359c292ade 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp
@@ -72,9 +72,8 @@ void QmlStateNodeInstance::deactivateState()
 
 void QmlStateNodeInstance::setPropertyVariant(const PropertyName &name, const QVariant &value)
 {
-    bool hasParent = parent();
     bool isStateOfTheRootModelNode = parentInstance() && parentInstance()->isRootNodeInstance();
-    if (name == "when" && (!hasParent || isStateOfTheRootModelNode))
+    if (name == "when" && (isStateOfTheRootModelNode))
         return;
 
     ObjectNodeInstance::setPropertyVariant(name, value);
@@ -82,9 +81,9 @@ void QmlStateNodeInstance::setPropertyVariant(const PropertyName &name, const QV
 
 void QmlStateNodeInstance::setPropertyBinding(const PropertyName &name, const QString &expression)
 {
-    bool hasParent = parent();
     bool isStateOfTheRootModelNode = parentInstance() && parentInstance()->isRootNodeInstance();
-    if (name == "when" && (!hasParent || isStateOfTheRootModelNode))
+
+    if (name == "when" && (isStateOfTheRootModelNode))
         return;
 
     ObjectNodeInstance::setPropertyBinding(name, expression);