      */
     private function handlePasteOperation(op:PasteOperation):void
     {
-        if (!restrict && !maxChars && !displayAsPassword)
-            return;
-
         // If copied/cut from displayAsPassword field the pastedText
         // is '*' characters but this is correct.
         var pastedText:String = TextUtil.extractText(op.textScrap.textFlow);
+        // See if there is anything we need to do.
+        if (!restrict && !maxChars && !displayAsPassword)
+        {
+            if (multiline || pastedText.indexOf("\n") == -1)
+                return;
+        }
+
+        // Save this in case we modify the pasted text.  We need to know
+        // how much text to delete.
+        var textLength:int = pastedText.length;
+        
+        // If multiline is false, strip newlines out of pasted text
+        // This will not strip newlines out of displayAsPassword fields
+        // since the text is the passwordChar and newline won't be found.
+        if (!multiline)
+            pastedText = pastedText.replace(ALL_NEWLINES_REGEXP, "");
 
         // We know it's an EditManager or we wouldn't have gotten here.
         var editManager:IEditManager = 

        _textContainerManager.addEventListener(
            FlowOperationEvent.FLOW_OPERATION_END,
            textContainerManager_flowOperationEndHandler);

        _textContainerManager.addEventListener(
            StatusChangeEvent.INLINE_GRAPHIC_STATUS_CHANGE, 

    public function get contentWidth():Number
    {
        return _contentWidth;
    }

    //----------------------------------
    //  contextMenu
    //----------------------------------
    
    /**
     *  @private
     *  Use to distinguish between null because it hasn't been set yet and
     *  null because it was set to null to remove the default context menu.
     */
    mx_internal var contextMenuSet:Boolean;
    
    /**
     *  The context menu associated with this component.  If the context menu 
     *  has not been set this is the default context menu which will be used.  
     *  Set the context menu to <code>null</code> to remove the default menu.
     *
     *  @see flash.display.InteractiveObject
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    override public function get contextMenu():ContextMenu
    {
        if (!contextMenuSet)
        {
            super.contextMenu = _textContainerManager.getContextMenu();
            contextMenuSet = true;
        }
        
        return super.contextMenu;
    }
    
    /**
     *  @private
     */
    override public function set contextMenu(value:ContextMenu):void
    {
        if (contextMenuSet && super.contextMenu == value)
            return;
        
        // If the context menu is being reset need to update the menu listeners.
        if (contextMenuSet && super.contextMenu)
            _textContainerManager.resetContextMenuListener(value);
        
        super.contextMenu = value;
        
        contextMenuSet = true;
    }

    //----------------------------------
