 
         return myItemRenderer;
     }
-    
-    /**
-     *  @private 
+   
+    /**
+     *  A bottleneck method which updates renderer specific information. 
+     * 
      *  Set the renderer's data to the item, but only if the item and 
-     *  renderer are different.   This step isn't integrated into createRendererForItem()
+     *  renderer are different.This step isn't integrated into createRendererForItem()
      *  so that we can delay calling the IR's 'set data' method until after the
      *  IR has a valid parent, i.e. until after it has been added to the 
-     *  display list.
-     */
-    private function updateRendererData(renderer:IVisualElement, item:Object):void
-    {
-        if ((renderer is IDataRenderer) && (renderer != item))
-            IDataRenderer(renderer).data = item;   
+     *  display list. 
+     * 
+     *  Additionally, this method sets the renderer's labelText (the result of
+     *  which is dependant on its data) and owner properties. 
+     * 
+     *  @param renderer The renderer to update
+     *  
+     *  @param data The renderer's data  
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     * 
+     */
+    public function updateRendererInformation(renderer:IVisualElement, data:Object=null):void
+    {
+    	if (!renderer)
+    	   return; 
+        
+        if ((renderer is IDataRenderer) && (renderer != data))
+            IDataRenderer(renderer).data = data;   
+        
+        renderer.owner = this;
+        
+        if (renderer is IItemRenderer)
+            IItemRenderer(renderer).labelText = itemToLabel(data);
     }
     
     /**

            
            case CollectionEventKind.UPDATE:
            {
                // update event, do nothing
                // TODO: maybe we need to do something here, like recreate renderer?
                break;
            }
        }

        var myItemRenderer:IVisualElement = createRendererForItem(item);
        indexToRenderer.splice(index, 0, myItemRenderer);
        addItemRendererToDisplayList(myItemRenderer as DisplayObject, index);
        updateRendererInformation(myItemRenderer, item);
        dispatchEvent(new RendererExistenceEvent(
                      RendererExistenceEvent.RENDERER_ADD, false, false, 
                      myItemRenderer, index, item));
