         public function getWorldToLocalTransform(node           : ISceneNode,
                                                  forceUpdate    : Boolean   = false) : Matrix4x4
         {
-            if (_invalidList || _nodeToId[node] == undefined)
-                updateTransformsList();
-            
-            var nodeId                  : uint      = _nodeToId[node];
+            var nodeId                  : uint      = getNodeId(node);
             var worldToLocalTransform   : Matrix4x4 = _worldToLocalTransforms[nodeId];
             
             if (!worldToLocalTransform)

            
            while (nodeId >= 0)
            {
                if ((_transforms[nodeId] as Matrix4x4)._hasChanged || !_initialized[nodeId])
                    dirtyRoot = nodeId;
                
                nodeId = _parentId[nodeId];

                    
                    _localToWorldTransforms[nodeId] = oldLocalToWorldTransforms[oldNodeId];
                    _worldToLocalTransforms[nodeId] = oldWorldToLocalTransform[oldNodeId];
                    _flags[nodeId] = oldInitialized[oldNodeId];
                }
                else
                {
                    _localToWorldTransforms[nodeId] = new Matrix4x4().lock();
                    _worldToLocalTransforms[nodeId] = null;
                    _flags[nodeId] = FLAG_NONE;
                }
                
                if (group)
