             setCurrentCaretIndex(index);
             renderer.selected = selected;
         }
+        if (dataProvider is INavigatable && selected)
+            INavigatable(dataProvider).selectedIndex = index;
     }
         
     /**

    override public function set dataProvider(value:IList):void
    {
        if (dataProvider)
            dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, resetCollectionChangeHandler);
    
        // not really a default handler, we just want it to run after the datagroup
        if (value)
            value.addEventListener(CollectionEvent.COLLECTION_CHANGE, resetCollectionChangeHandler, false, EventPriority.DEFAULT_HANDLER);

        super.dataProvider = value;
    }

    /**

import mx.collections.IList;
import mx.core.EventPriority;
import mx.core.IFactory;
import mx.core.INavigatable;
import mx.core.IVisualElement;
import mx.core.mx_internal;
import mx.events.CollectionEvent;
import mx.events.CollectionEventKind;
import mx.events.FlexEvent;
import mx.managers.IFocusManagerComponent;

use namespace mx_internal;  //ListBase and List share selection properties that are mx_internal
