     {
          // Make sure all properties are committed before doing the operation.
         validateNow();
-        
-        var editManager:IEditManager = getEditManager();
         
         // Assign each specified attribute to one of three format objects,
         // depending on whether it is container-, paragraph-,

        return fontContext;
    }

    /**
     *  @private
     *  The editingMode is set to READ_SELECT if not already READ_SELECT or
     *  READ_WRITE.
     *  When done call releaseSelectionManager().
     */
    private function getSelectionManager():ISelectionManager
    {
        priorEditingMode = editingMode;
        
        if (editingMode == EditingMode.READ_ONLY)
            editingMode = EditingMode.READ_SELECT;

        return SelectionManager(_textContainerManager.beginInteraction());
    }

    /**
     *  @private
     */
    private function releaseSelectionManager():void
    {
        _textContainerManager.endInteraction();
        
        editingMode = priorEditingMode;
    }

    /**
     *  @private
     *  The editingMode is set to READ_WRITE.
     *  When done call releaseEditManager().  Should only be used by API calls.
     */
    private function getEditManager():IEditManager
    {
        // This triggers a damage event if the interactionManager is
        // changed. 
                
        priorEditingMode = editingMode;
        
        if (editingMode != EditingMode.READ_WRITE)
            editingMode = EditingMode.READ_WRITE;
        
        var editManager:IEditManager =
            EditManager(_textContainerManager.beginInteraction());
            
        // Combine all the edits from one API call into one operation so it 
        // can be undone as a single operation.  It will also prevent this from
        // possibibly being combined with the last operation.
        editManager.beginCompositeOperation(); 
        
        return editManager;           
    }

    /**
     *  @private
     *  Should only be used by API calls.
     */
    private function releaseEditManager(editManager:IEditManager):void
    {
        editManager.endCompositeOperation();
                    
        _textContainerManager.endInteraction();

        editingMode = priorEditingMode;
    }
        
    /**
     *  @private
     *  Return true if there is a width and height to use for the measure.

            if (editingMode != EditingMode.READ_ONLY)
            {
                // Must preserve the selection, if there was one.
                var selManager:ISelectionManager = 
                    _textContainerManager.beginInteraction();
                
                // The visible selection will be refreshed during the update.
                selManager.selectRange(oldAnchorPosition, oldActivePosition);        
                                     
                _textContainerManager.endInteraction();
            }           
            
            displayAsPasswordChanged = false;
