      *  An insertion point is then set after the new text.
      */
     public function insertText(text:String):void
-    {
+    {        
+        // Always use the EditManager regardless of the values of
+        // selectable, editable and enabled.
+        var priorManager:ISelectionManager = textFlow.interactionManager;
+        switchInteractionManager(textFlow, editManager);
+        
+        // This does nothing if there is not an insertion point, ie
+        // there is no selection.
         EditManager(textFlow.interactionManager).insertText(text);
+        textFlow.flowComposer.updateAllContainers();        
+
+        // Restore the prior manager if it wasn't an EditManager.
+        switchInteractionManager(textFlow, priorManager);
     }
     
     /**

        _selectionAnchorPosition = textFlow.interactionManager.anchorPosition;
        _selectionActivePosition = textFlow.interactionManager.activePosition;
        
        dispatchEvent(new FlexEvent(FlexEvent.SELECTION_CHANGE));
    }


        _selectable = value;
        selectableChanged = true;

        invalidateDisplayList();
    }

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