      *  @private
      */
     private var navigatorProperties:Object = {};
+    
+    /**
+     *  @private
+     */ 
+    private var maintainNavigationStackPropSet:Boolean = false;
     
     //----------------------------------
     //  activeView

    /**
     *  @private
     */ 
    override protected function nativeApplication_deactivateHandler(event:Event):void
    {
        if (navigator && navigator.activeView)
            navigator.activeView.setActive(false);
        
        // super is called after so that the active view can get the
        // viewDeactive event before the persistence process begins.
        super.nativeApplication_deactivateHandler(event);
    }
    
    /**
     *  @private
     */ 
    override protected function backKeyHandler(event:KeyboardEvent):void
    {
        if (navigator)
            navigator.backKeyHandler();
    }
    
    /**
     *  @private
     */
    // TODO (chiedozi): PARB
    override protected function persistApplicationState():void
    {
        super.persistApplicationState();
        
        if (navigators.length > 0)
            persistenceManager.setProperty("navigatorState", navigator.saveViewData());
    }
    
    /**
     *  @private
     */
    override protected function registerPersistenceClassAliases():void
    {
        super.registerPersistenceClassAliases();
        
        // Register aliases for custom classes that will be written to
        // persistence store by navigator
        registerClassAlias("ViewDescriptor", ViewDescriptor);
        registerClassAlias("NavigationStack", NavigationStack);
    }
    
    /**
     *  @private
     */
    override protected function restoreApplicationState():void
    {
        super.restoreApplicationState();
        
        var savedState:Object = persistenceManager.getProperty("navigatorState");
        
        if (savedState)
            navigator.restoreViewData(savedState);
    }
    
    //--------------------------------------------------------------------------

        
        if (instance == navigator)
        {
        	// Always want to save the navigation stack
            var newNavigatorProperties:Object = {navigationStack: navigator.navigationStack};
            
            if (maintainNavigationStackPropSet)
                newNavigatorProperties.maintainNavigationStack = navigator.maintainNavigationStack;
            
            navigatorProperties = newNavigatorProperties;
        }
    }
}
