     protected function itemSelected(index:int, selected:Boolean):void
     {
         // Subclasses must override this method to display the selection.
+    }
+    
+    /**
+     *  Called when an item is in its caret state or not. 
+     *  Subclasses must override this method to display the caret.  
+     *
+     *  @param index The item index that was put into caret state. 
+     *
+     *  @param inFocus <code>true</code> if the item is in the caret state,  
+     *  and <code>false</code> if it is not.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function itemInCaret(index:int, caret:Boolean):void
+    {
+        // Subclasses must override this method to display the caret. 
     }
     
     /**

 *  @productversion Flex 4
 */
[Event(name="selectionChanged", type="mx.events.IndexChangedEvent")]

/**
 *  The ListBase class is the base class for all components that support

     */
    override public function updateRenderer(renderer:IVisualElement):void
    {
        //First clean up any old, stale properties like selected and caret      
        if (renderer is IItemRenderer && IItemRenderer(renderer).selected)
        {
            IItemRenderer(renderer).selected = false;
            IItemRenderer(renderer).caret = false; 
        }    
        //Now run through and initialize the renderer correctly
        super.updateRenderer(renderer); 
          
