                         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);
             }
         }
         

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

                    rootLocalToWorld.unlock();
                
                rootTransform._hasChanged = false;
                rootFlags = (rootFlags | FLAG_INIT_LOCAL_TO_WORLD) & ~FLAG_INIT_WORLD_TO_LOCAL;
                
                if (rootFlags & FLAG_SYNCHRONIZE_TRANSFORMS)
                {
