      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    private function viewAdded(transition:ViewTransitionBase = null):void
-    {
+    private function view_updateCompleteHandler(event:FlexEvent):void
+    {
+        event.target.removeEventListener(FlexEvent.UPDATE_COMPLETE, view_updateCompleteHandler);
+        
         var currentView:View;
         var pendingView:View;
         

                validateNow();
        }
        
        if (transition)
        {
            transition.captureEndValues();
            transition.prepareForPlay();
            activeTransition = transition;
            
            // Run transition a frame later so that the overhead of creating the view
            // and the time the player takes to render isn't included in the duration.

                            view_propertyChangeHandler);
        }
        
        if (activeTransition)
        {
            activeTransition.addEventListener(FlexEvent.TRANSITION_END, transitionComplete);
            activeTransition.startView = currentView;
            activeTransition.endView = pendingView;
            activeTransition.navigator = this;
            
            // Give the transition a chance to prepare before the view updates
            activeTransition.captureStartValues();
        }

        // This event is dispatched here to allow developers to incorporate
