             // In this case we always maintain _text with the underlying text and
             // display the appropriate number of passwordChars.  If there are any
             // interactive editing operations _text is updated during the operation.
-            if (displayAsPassword)
-                return;
-            
-            // Invalidate _text and _content.
-            _text = null;
+            if (!displayAsPassword)
+                _text = null;
+            
             _content = null;        
             _textFlow = _textContainerManager.getTextFlow();
                         

    import flashx.textLayout.formats.Category;
    import flashx.textLayout.formats.ITextLayoutFormat;
    import flashx.textLayout.formats.TextLayoutFormat;
    import flashx.textLayout.operations.CutOperation;
    import flashx.textLayout.operations.DeleteTextOperation;
    import flashx.textLayout.operations.FlowOperation;

                
                if (_displayAsPassword)
                {
                    if (op is DeleteTextOperation)
                    {
                        _text = splice(_text, flowTextOperation.absoluteStart,
                            flowTextOperation.absoluteEnd, "");
                    }
                    else
                    {
                        // For security, don't allow passwords to be cut.
                        event.preventDefault();
                        return;
                    }
                }
            }
            
