             return;
         
         // Deactivate the view if it is active
-        if (currentView.isActive)
-            currentView.setActive(false);
-        
+		deactiveView(currentView);
         removeElement(currentView);
-        
-        currentView.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, 
-            view_propertyChangeHandler);
         
         // Grab the data from the old view and persist it
         if (lastAction == ViewNavigatorAction.PUSH || forceDataPersist)

        }
    }
    
    /**
     *  @private
     */

                // persistence is enabled.
                if (canDestroy || clearNavigationStack)
                    destroyViewInstance(navigationStack.topView, !clearNavigationStack);
				else
					deactiveView(activeView);
            }
        }
        
