                     var pe:PropertyChangeEvent = event.items[i]; 
                     if (pe)
                     {
-                        var renderer:IVisualElement = indexToRenderer[dataProvider.getItemIndex(pe.source)];
-                        updateRenderer(renderer, pe.source); 
+                        var index:int = dataProvider.getItemIndex(pe.source);
+                        var renderer:IVisualElement = indexToRenderer[index];
+                        updateRenderer(renderer, index, pe.source); 
                     }
                 }
                 break;

        }

        super.addChild(obj);
        updateRenderer(renderer, _typicalItem);
        if (obj is IInvalidating)
            IInvalidating(obj).validateNow();
        setTypicalLayoutElement(renderer);

        // Newly created renderer with no owner, set owner to this     
        if (!renderer.owner)
            renderer.owner = this; 
        
        // Set the index
        if (renderer is IItemRenderer)
            IItemRenderer(renderer).index = index;
        
        // If a delegate is specified defer to the rendererUpdateDelegate
        // to update the renderer.
