diff --git a/.rive_head b/.rive_head
index 2744b5e..4406616 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-d9fc7d92736d3ac97fafc2f2713ec25211584799
+8115f9a079a909777a03f5f211daad206acfa5c6
diff --git a/lib/src/rive_core/animation/nested_input.dart b/lib/src/rive_core/animation/nested_input.dart
index b3462d6..6b7955a 100644
--- a/lib/src/rive_core/animation/nested_input.dart
+++ b/lib/src/rive_core/animation/nested_input.dart
@@ -8,7 +8,8 @@ abstract class NestedInput extends NestedInputBase {
   @override
   void inputIdChanged(int from, int to) {}
 
-  NestedStateMachine? get nestedStateMachine => parent as NestedStateMachine?;
+  NestedStateMachine? get nestedStateMachine =>
+      parent is NestedStateMachine ? parent as NestedStateMachine : null;
 
   @override
   bool validate() => super.validate() && nestedStateMachine != null;
diff --git a/lib/src/rive_core/component.dart b/lib/src/rive_core/component.dart
index c29d427..0d047d1 100644
--- a/lib/src/rive_core/component.dart
+++ b/lib/src/rive_core/component.dart
@@ -130,7 +130,7 @@ abstract class Component extends ComponentBase<RuntimeArtboard>
     if (_parent == value) {
       return;
     }
-    dirt &= ~ComponentDirt.collapsed;
+    propagateCollapse(false);
     var old = _parent;
     _parent = value;
     parentId = value?.id ?? Core.missingId;