      */    
     public function get selectedNavigator():ViewNavigatorBase
     {
-        if (!navigators || length == 0 || selectedIndex < 0) 
+        if (length == 0 || selectedIndex < 0 || selectedIndex >= length) 
             return null;
         
-        return navigators[selectedIndex];
+        return getElementAt(selectedIndex) as ViewNavigatorBase;
     }
     
     //--------------------------------------------------------------------------

    {
        super();
        
        _navigators = new Vector.<ViewNavigatorBase>();
    }
    
    //--------------------------------------------------------------------------

    
    /**
     *  @private
     */
    private function addNavigatorListeners(navigator:ViewNavigatorBase):void
    {
        navigator.addEventListener("viewChangeComplete", navigator_viewChangeCompleteHandler);
        navigator.addEventListener("viewChangeStart", navigator_viewChangeStartHandler);
        navigator.addEventListener(ElementExistenceEvent.ELEMENT_ADD, navigator_elementAddHandler);
        navigator.addEventListener(ElementExistenceEvent.ELEMENT_REMOVE, navigator_elementRemoveHandler); 
    }
    
    /**
     *  @private
     */
    private function removeNavigatorListeners(navigator:ViewNavigatorBase):void
    {
        navigator.removeEventListener("viewChangeComplete", navigator_viewChangeCompleteHandler);
        navigator.removeEventListener("viewChangeStart", navigator_viewChangeStartHandler);
        navigator.removeEventListener(ElementExistenceEvent.ELEMENT_ADD, navigator_elementAddHandler);
        navigator.removeEventListener(ElementExistenceEvent.ELEMENT_REMOVE, navigator_elementRemoveHandler); 
    }
    
    /**
     *  @private
     */ 
    private function setupNavigator(navigator:ViewNavigatorBase):void
    {
