         
         // If it's an empty text flow, there is one line with one
         // character so the height is good for the line.
-        measuredHeight = Math.ceil(contentBounds.height);
-
-        if (_inputManager.getText().length > 1) 
-        {
-            // Non-empty text flow.
-            measuredWidth = Math.ceil(contentBounds.width);
+        measuredHeight = Math.round(contentBounds.height);
+
+        if (_inputManager.getText().length > 0) 
+        {
+            // Text flow with a terminator (which has width).
+            measuredWidth = Math.round(contentBounds.width);
         }
         else
         {
-            // Empty text flow.  One Em wide with padding.
-            measuredWidth = Math.ceil(getStyle("fontSize") +
-                                      contentBounds.width);
+            // Empty text flow.  One Em wide so there
+            // is a place to put the insertion cursor.
+            measuredWidth = Math.round(contentBounds.width +
+                                       getStyle("fontSize"));
        }
-                
-        // Lock in the compose area so all text is visible.
-        measuredMinWidth = measuredWidth;                     
-        measuredMinHeight = measuredHeight;           
     }
 
     /**


    /**
     *  @private
     */
    private var lastUnscaledWidth:Number = NaN;
    
    /**
     *  @private
     *  True if TextOperationEvent.CHANGING should be dispatched at
     *  operationEnd.
     */

        //trace("updateDisplayList", unscaledWidth, unscaledHeight);

        super.updateDisplayList(unscaledWidth, unscaledHeight);

        if (!_autoSize)
        {
