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

     */
    private function navigationChangeHandler(event:Event):void
    {
        if (INavigatable(dataProvider).selectedIndex != selectedIndex)
            selectedIndex = INavigatable(dataProvider).selectedIndex;
    }

    /**

import mx.collections.IList;
import mx.core.EventPriority;
import mx.core.IFactory;
import mx.core.ISelectableList;
import mx.core.IVisualElement;
import mx.core.mx_internal;
import mx.events.CollectionEvent;
