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

                    rootLocalToWorld.unlock();
                
                rootTransform._hasChanged = false;
                _flags[nodeId] |= FLAG_INIT_LOCAL_TO_WORLD;
                root.localToWorldTransformChanged.execute(root, rootLocalToWorld);
                
                if (rootFlags & FLAG_SYNCHRONIZE_TRANSFORMS)
                {

                            childLocalToWorld.unlock();
                        
                        childTransform._hasChanged = false;
                        childFlags = (childFlags | FLAG_INIT_LOCAL_TO_WORLD)
                            & ~FLAG_INIT_WORLD_TO_LOCAL;
                        
                        if (childFlags & FLAG_SYNCHRONIZE_TRANSFORMS)
                        {
