             ancestor.removeEventListener(FlexEvent.HIDE, ancestor_hideHandler);
             ancestor.removeEventListener(PopUpEvent.CLOSE, ancestor_closeHandler);
             ancestor.removeEventListener(PopUpEvent.OPEN, ancestor_openHandler);
+            ancestor.removeEventListener("viewChangeStart", ancestor_viewChangeStartHandler);
+            ancestor.removeEventListener("viewChangeComplete", ancestor_viewChangeCompleteHandler);
         }
     }
     

    {
        if (event.keyCode == Keyboard.ENTER && !_multiline)
            dispatchEvent(new FlexEvent(FlexEvent.ENTER));

        // Keyboard events are documented as bubbling. However, all events
        // coming from StageText are set to not bubble. So we need to create an
        // appropriate bubbling event here.

                    newAncestor.addEventListener(PopUpEvent.CLOSE, ancestor_closeHandler, false, 0, true);
                    newAncestor.addEventListener(PopUpEvent.OPEN, ancestor_openHandler, false, 0, true);
                }
                
                if (newAncestor is ViewNavigator)
                {
                    // If one of our ancestors is a ViewNavigator, we need to
                    // make sure that the visibility of the StageText does not
                    // change during a view transition.
                    newAncestor.addEventListener("viewChangeStart", ancestor_viewChangeStartHandler);
                    newAncestor.addEventListener("viewChangeComplete", ancestor_viewChangeCompleteHandler);
                    viewChanging = (newAncestor as ViewNavigator).viewChanging;
                }
            }
        }
        
