         if (textChanged || textFlowChanged || contentChanged)
         {
             // If the text, textFlow or content changed, there is no selection.
-            // If we already have focus, set the selection, since we've 
-            // already  executed our focusIn handler where this is normally 
-            // done.
-            if (getFocus() == this)
-                setSelectionBasedOnScrolling();  
+            // If we already have focus, set the selection to 0,0 so there is
+            // an insertion point.  Since the text was changed programatically
+            // the caller should set the selection to the desired position.
+            if (getFocus() == this && editingMode != EditingMode.READ_ONLY)
+            {
+                var selectionManager:ISelectionManager = getSelectionManager();
+                selectionManager.selectRange(0, 0);        
+                if (!selectionManager.focused)
+                    selectionManager.focusInHandler(null);
+                releaseSelectionManager();            
+            }
                 
             // Handle the case where the initial text, textFlow or content 
             // is displayed as a password.

        // to be remeasured.  If one of the dimension changes, the text may
        // compose differently and have a different size which the layout 
        // manager needs to know.
        if (autoSize)
        {
            autoSize = remeasureText(unscaledWidth, unscaledHeight)
            if (autoSize)
                return;
        }

        super.updateDisplayList(unscaledWidth, unscaledHeight);


     */
    private function get editingMode():String
    {
        // Note: this could be called before all properties are committed.

        if (enabledChanged || editableChanged || selectableChanged)
        {
            updateEditingMode();

            enabledChanged = false;
            editableChanged = false;
            selectableChanged = false;
        }
           
        return _textContainerManager.editingMode;
    }
    
