      */
     public function get text():String 
     {
-        // If displayAsPassword is changing, use the old value until the
-        // change is committed.
-        if (!displayAsPassword && !displayAsPasswordChanged ||
-            displayAsPassword && displayAsPasswordChanged)
-        {
-            _text = _inputManager.getText("\n");
-            
-            // ToDo: asked TLF if they not put the terminator on the last
-            // paragraph
-            
-            // Remove terminator on the last paragraph, ie remove the last char.
-            if (_text.length > 0 && _text.charAt(_text.length-1) == "\n")
-                _text = _text.slice(0, -1);
-        }
+        if (!displayAsPassword)
+            _text = getText();
         
         return _text;
     }

            {
                // Make sure _text is set with the actual text before we
                // change the displayed text.
                var textToDisplay:String = text;
                
                textToDisplay = StringUtil.repeat(
                    mx_internal::passwordChar, textToDisplay.length);
                _inputManager.setText(textToDisplay);
                
                textFlowChanged = true;                    
            }
            else if (!_content)
            {
                _inputManager.setText(_text ? _text : "");
                textFlowChanged = true;                    
            }
            displayAsPasswordChanged = false;
        }
        

    	
  		editingMode = newEditingMode;
    }
      
    /**
     *  @private
     *  Get the text from the textFlow.  This wrapper can go away once Vellum
     *  gives us a getText that doesn't put a paragraph terminator on the
     *  last paragraph.
     */
    private function getText():String
    {
        var t:String = _inputManager.getText("\n");
        
        // ToDo: asked TLF if they not put the terminator on the last
        // paragraph
        
        // Remove terminator on the last paragraph, ie remove the last char.
        // t true implies length > 0.
        if (t && t.charAt(t.length-1) == "\n")
            t = t.slice(0, -1);
            
        return t;            
    }
    
      
    /**
     *  Sets the selection range and.  If the text is not editable or selectable
     *  this will also implicitly make the text selectable.
