     import flashx.textLayout.tlf_internal;
     import flashx.undo.IUndoManager;
     
+    import mx.core.FlexVersion;
     import mx.core.IFlexModuleFactory;
     import mx.core.IIMESupport;
     import mx.core.ISystemCursorClient;

         *  <p>Setting this property also affects the properties
         *  specifying the control's scroll position and the text selection.
         *  It resets the <code>horizontalScrollPosition</code>
         *  and <code>verticalScrollPosition</code> to 0,
         *  and it sets the <code>selectionAnchorPosition</code>
         *  and <code>selectionActivePosition</code>
         *  to -1 to clear the selection.</p>
         *
         *  @default ""

            // not the underlying text.
            if (displayAsPasswordChanged)
            {
                preserveSelectionOnSetText = true;
                
                // If there is any text, convert it to the passwordChar.
                if (displayAsPassword)
                {
                    // Make sure _text is set with the actual text before we
                    // change the displayed text.
                    _text = _textContainerManager.getText("\n");
                    
                    // Paragraph terminators are lost during this substitution.
                    var textToDisplay:String = StringUtil.repeat(
