     /**
      *  @private
      */ 
-    private function destroyViewInstance(viewProxy:ViewDescriptor):void
+    private function destroyViewInstance(viewProxy:ViewDescriptor, forceDataPersist:Boolean = false):void
     {
         var currentView:View = viewProxy.instance;
         

            view_propertyChangeHandler);
        
        // Grab the data from the old view and persist it
        if (lastAction == ViewNavigatorAction.PUSH)
        {
            viewProxy.data = currentView.data;
            viewProxy.persistenceData = currentView.serializeData();

                var canDestroy:Boolean = (activeView.destructionPolicy != ContainerDestructionPolicy.NEVER) && 
                                         (destructionPolicy != ContainerDestructionPolicy.NEVER);
                
				// If the instance of the view is being destroyed but our navigationStack is
				// maintained, the active view needs to serialize its data is application
				// persistence is enabled.
                if (canDestroy || clearNavigationStack)
                    destroyViewInstance(navigationStack.topView, !clearNavigationStack);
            }
        }
        
