         if (labelDisplay)
             removeChild(DisplayObject(labelDisplay));
         
-        labelDisplay = IUITextField(createInFontContext(UITextField)); 
-        labelDisplay.multiline = true;
+        labelDisplay = IUITextField(createInFontContext(UITextField));
+        labelDisplay.multiline = true;  // consistent with singleLine=false (the default)
         labelDisplay.wordWrap = true;
-        labelDisplay.autoSize = TextFieldAutoSize.LEFT;
+        labelDisplay.autoSize = TextFieldAutoSize.NONE;
+        
+        // The default width of a TextField is 100.  If autoWrap is true, and
+        // multiline is true, the measured text will wrap if it is wider than
+        // the TextField's width. This is not what we want when measuring the 
+        // width of typicalItem columns that lack an explicit GridColumn width.
+        
+        labelDisplay.setActualSize(4096, NaN);  // 4096 is just an arbitrarily large value
         
         addChild(DisplayObject(labelDisplay));
-        if (_label != "")
-            labelDisplay.text = _label;
-    }
-    
-    /**
-     *  @private
-     */
-    override protected function createChildren():void
-    {
-        super.createChildren();
-        createLabelDisplay();
     }
     
     /**

        if (_dragging == value)
            return;
        
        // TBD(hmuller): state change             
        _dragging = value;
        dispatchChangeEvent("draggingChanged");        
    }

     */
    private function updateMeasuredSize():void
    {
        if (getStyle("lineBreak") == "explicit")
            labelDisplay.multiline = _label.indexOf("\n") != -1;
        
        labelDisplay.text = _label;  // forces a labelDisplay.validateNow(), if text has changed

        const widthPadding:int = WIDTH_PADDING + UITextField.TEXT_WIDTH_PADDING;
        const heightPadding:int = HEIGHT_PADDING + UITextField.TEXT_HEIGHT_PADDING
        
        if (!labelDisplay.stage || labelDisplay.embedFonts)
        {
            measuredWidth = labelDisplay.textWidth + widthPadding;
            measuredHeight = labelDisplay.textHeight + heightPadding;
        }
        else 
        {
            const m:Matrix = labelDisplay.transform.concatenatedMatrix;      
            measuredWidth = Math.abs((labelDisplay.textWidth * m.a / m.d)) + widthPadding;
            measuredHeight  = Math.abs((labelDisplay.textHeight * m.a / m.d)) + heightPadding;
        }
    }
    
    /**
