             _priorSelectionActivePosition = textFlow.interactionManager.activePosition;
         }
 
+        var interactionManager:ISelectionManager;
+        if (editingMode == EditingMode.READ_WRITE)
+        {
+            interactionManager = editManager;
+        } 
+        else if (editingMode == EditingMode.READ_SELECT)
+        {
+            interactionManager = new SelectionManager();
+            setSelectionFormats(interactionManager);
+        }
+        else // EditingMode.READ_ONLY
+        {
+            interactionManager = null;
+        }           
+               
         // Swap in a new manager.            
-        textFlow.interactionManager = selectionManager;
+        textFlow.interactionManager = interactionManager;
 
         // Restore the prior selection in the new selection manager.
         if (textFlow.interactionManager != null)

        {
            var flowTextOperation:FlowTextOperation =
                FlowTextOperation(op);
            
            if (displayAsPassword)
            {

            }
        }
        
        var priorEditingMode:String = getEditingMode(textFlow.interactionManager);
        switchToEditingMode(textFlow, EditingMode.READ_WRITE);
        
        // Apply the format to the current selection.
        EditManager(textFlow.interactionManager).applyFormat(
                        characterFormat, paragraphFormat, containerFormat);
        
        // Restore the prior editing mode.
        switchToEditingMode(textFlow, priorEditingMode);
    }

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