     /**
      *  @private
      *  Watch Out: this code relies on the fact that UITextField/setActualSize() can cause
-     *  labelDisplay.textHeight to change, if the text wraps.  The text field's measuredHeight
+     *  labelDisplay.textHeight to change, if the text wraps.  The textfield's measuredHeight
      *  is just a padded version of textHeight.  This is the only place where labelDisplay.setActualSize() 
      *  is called, so we update the measuredHeight of this render here.  Very unconventional.
-     *  Doing so is essential because after this code runs, i.e. after GridLayout/layoutGridElement()
+     *  Doing so is essential because after this code runs, i.e. after GridLayout/layoutItemRenderer()
      *  invokes validateNow() on this renderer, it uses the renderer's preferredBoundsHeight()
      *  (that's the measuredHeight in our case) to update the overall row height.
      */
-    override protected function updateDisplayList(width:Number, height:Number):void
+    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
         super.updateDisplayList(width, height);
 
-        labelDisplay.setActualSize(width - 10, height - 5);  // setActualSize() side-effects labelDisplay.textHeight
+        if ((unscaledWidth == 0) || (unscaledHeight == 0))
+            return;
+        
+        const labelDisplayX:int = 5;
+        const labelDisplayY:int = 5;
+        const labelDisplayWidth:int = unscaledWidth - (WIDTH_PADDING - labelDisplayX); 
+        const labelDisplayHeight:int = unscaledHeight - (HEIGHT_PADDING - labelDisplayY);
+        
+        labelDisplay.setActualSize(labelDisplayWidth, labelDisplayHeight);  // setActualSize() side-effects labelDisplay.textHeight
         updateMeasuredSize();  // See @private comment above 
         
-        // If the Grid's row heights are fixed and the labelDisplay will not fit, then clip.
-        
-        const grid:Grid = column.grid; 
-        if (grid && !grid.variableRowHeight && (measuredHeight > grid.rowHeight))
-        {
-            clippingEnabled = true;
-            labelDisplay.scrollRect = new Rectangle(0, 0, width - 10, height - 5);
-        }
-        else if (clippingEnabled)
-        {
-            clippingEnabled = false;
-            labelDisplay.scrollRect = null;
-        }
-        
-        labelDisplay.move(5, 5);
+        labelDisplay.move(labelDisplayX, labelDisplayY);
     }
  
         

        if (labelDisplay)
            removeChild(DisplayObject(labelDisplay));
        
        labelDisplay = IUITextField(createInFontContext(UITextField)); 
        labelDisplay.multiline = true;
        labelDisplay.wordWrap = true;
        labelDisplay.autoSize = TextFieldAutoSize.LEFT;
        
        addChild(DisplayObject(labelDisplay));
        if (_label != "")
            labelDisplay.text = _label;
    }
    
    /**
     *  @private
     */
    override protected function createChildren():void
    {
        super.createChildren();
        createLabelDisplay();
    }
    
    /**

        if (_selected == value)
            return;
        
        _selected = value;
        dispatchChangeEvent("selectedChanged");        
    }
    
    //----------------------------------
    //  singleLine (private)
    //----------------------------------

    private var _singleLine:Boolean = false;
    
    /**
     *  @private
     *  If true, then the labelDisplay is confgured to not wrap and to display 
     *  only one line of text.  That's the most efficient rendering mode.  This 
     *  property is false by default, which means that multiline and wordWrap are 
     *  enabled (true) and autoSize is LEFT.
     */    
    public function get singleLine():Boolean
    {
        return _singleLine
    }
    
    /**
     *  @private
     */    
    public function set singleLine(value:Boolean):void
    {
        if (_singleLine == value)
            return;
        
        _singleLine = value;
        
        labelDisplay.multiline = !singleLine;  // can be reset, see updateMeasuredSize()
        labelDisplay.wordWrap = !singleLine;
    }    
    
    //----------------------------------
    //  dragging
    //----------------------------------
    
