      */
     public function get text():String 
     {
-        if (textInvalid && !displayAsPassword)
-        {
-            _text = TextUtil.extractText(textFlow);
-            textInvalid = false;
-        }
-
+        // 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);
+        }
+        
         return _text;
     }
     

    private function inputManager_flowOperationEndHandler(
                        event:FlowOperationEvent):void
    {
        //trace("operationEnd");
        
        // Paste is a special case.  Any mods have to be made to the text
        // which includes what was pasted.
        if (event.operation is PasteOperation)
            handlePasteOperation(PasteOperation(event.operation));

        // Since the text may have changed, set a flag which will
        // cause the 'text' getter to call extractText() to extract
        // the text by walking the TextFlow.
        textInvalid = true;
        dispatchEvent(new Event("textInvalid"));

        // Dispatch a 'change' event from the TextView
        // as notification that an editing operation has occurred.

            }
        }

        if (!_autoSize)
        {
            _inputManager.compositionWidth = unscaledWidth;
            _inputManager.compositionHeight = unscaledHeight;
        }

		if (mx_internal::debug)
			trace("updateContainer()");
			
        _inputManager.textLineCreator = 
            ITextLineCreator(mx_internal::embeddedFontContext);
            
        _inputManager.updateContainer();
    }

    /**
