      *  Initialize the ISelectionManager with the selection style vlaues.
      *  This should be kept in sync with isSelectionFormat().
      */
-    private function setSelectionFormats(instanceManager:ISelectionManager):void
+    private function setSelectionFormats(interactionManager:ISelectionManager):void
     {        
+        if (!interactionManager)
+            return;
+           
         var selectionColor:* = getStyle("selectionColor");
         var unfocusedAlpha:Number =
             selectionVisibility != TextSelectionVisibility.WHEN_FOCUSED ? 

    private function textFlow_compositionCompleteHandler(
                                    event:CompositionCompletionEvent):void
    {
        var containerController:IContainerController =
            textFlow.flowComposer.getControllerAt(0);


        var inactiveAlpha:Number =
            selectionVisibility == TextSelectionVisibility.ALWAYS ?
            1.0 : 0.0;
        interactionManager.focusSelectionFormat = new SelectionFormat(
            selectionColor, 1.0, BlendMode.NORMAL);
        interactionManager.noFocusSelectionFormat = new SelectionFormat(
            getStyle("unfocusedSelectionColor"), unfocusedAlpha,
            BlendMode.NORMAL);
        interactionManager.inactiveSelectionFormat = new SelectionFormat(
            getStyle("inactiveSelectionColor"), inactiveAlpha,
            BlendMode.NORMAL);
    }
        
    /**
     *  @private
     *  Persist the edit manager so selection formatting can be maintained.
     */
    private var _editManager:TextViewEditManager = null;
    
    /**
     *  @private
     *  Cache the edit manager.  Any formats set on the selection need to
     *  be maintained if/when the interaction manager is swapped out and
     *  back in again.
     */
    private function get editManager():TextViewEditManager
    {
        if (_editManager == null)
        {
            _editManager = new TextViewEditManager(mx_internal::undoManager);
            setSelectionFormats(_editManager);
        }

        return _editManager; 
    }
    
    /**
     *  @private
     */
    private function setInteractionManager(textFlow:TextFlow, 
                                           updateDisplay:Boolean=false):void
    {
        if (enabled)
        {
            if (_editable)
            {
                // Give it an EditManager to make it editable. Editable implies selectable.
                switchToEditingMode(textFlow, EditingMode.READ_WRITE, updateDisplay);
                return;
            }   
            else if (_selectable)
            {
                // Give it a SelectionManager to enable selection for cut/paste.
                switchToEditingMode(textFlow, EditingMode.READ_SELECT, updateDisplay);
                return;                            
            }
        }        
        
        // Not enabled or enabled and neither editable nor selectable.
        switchToEditingMode(textFlow, EditingMode.READ_ONLY, updateDisplay);
    }

    /**
