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

    /**
     *  @private
     */ 
    private function destroyViewInstance(viewProxy:ViewDescriptor):void
    {
        var currentView:View = viewProxy.instance;
        

                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);
            }
        }
        
