                                 childWorldToLocal.lock();
                             
                             childWorldToLocal.copyFrom(childLocalToWorld).invert();
+                            childFlags |= FLAG_INIT_WORLD_TO_LOCAL;
                             
                             if (childFlags & FLAG_LOCK_TRANSFORMS)
                                 childWorldToLocal.unlock();
                         }
+                        
+                        _flags[childId] = childFlags;
+                        
+                        child.localToWorldTransformChanged.execute(child, childLocalToWorld);
                         
                         if (childId == targetNodeId)
                             return;

                            childLocalToWorld.unlock();
                        
                        childTransform._hasChanged = false;
                        _flags[childId] |= FLAG_INIT_LOCAL_TO_WORLD;
                        child.localToWorldTransformChanged.execute(child, childLocalToWorld);
                        
                        if (childFlags & FLAG_SYNCHRONIZE_TRANSFORMS)
                        {

                        rootWorldToLocal.lock();
                    
                    rootWorldToLocal.copyFrom(rootLocalToWorld).invert();
                    rootFlags |= FLAG_INIT_WORLD_TO_LOCAL;
                    
                    if (rootFlags & FLAG_LOCK_TRANSFORMS)
                        rootWorldToLocal.unlock();
                }
                
                _flags[nodeId] = rootFlags;
                
                root.localToWorldTransformChanged.execute(root, rootLocalToWorld);
            }
        }
        
