         
         grid.itemRendererGroup.addElement(renderer);
         
-        // Initialize cell 0,0.
+        // Initialize cell 0,0.  If the column 0 has an explicit width
+        // use that.
         initializeItemRenderer(renderer, 0, 0, typicalItem, false);
-        layoutGridElement(renderer, 0, 0, NaN, NaN);
+        layoutGridElement(renderer, 0, 0, column.width, NaN);
 
         grid.itemRendererGroup.removeElement(renderer);
         

        if (!grid)
            return;
        
        var measuredWidth:Number;
        var measuredHeight:Number;

        if (!isNaN(grid.explicitWidth))
        {

        {
            const columns:IList = grid.columns;
            const numColumns:int = columns ? columns.length : 0;
            
            if (numColumns)
            {
                const defaultColumnWidth:Number =
                    !isNaN(typicalLayoutElement.getLayoutBoundsWidth()) ? 
                    typicalLayoutElement.getLayoutBoundsWidth() :
                    typicalLayoutElement.getPreferredBoundsWidth();
                
                const columnGap:Number = gridDimensions.columnGap;
                
                for (var i:int = 0; i < numColumns; i++)
                {
                    var c:GridColumn = columns.getItemAt(i) as GridColumn;
                    if (c && c.visible)
                    {
                        if (!isNaN(c.width))
                            measuredWidth += c.width + columnGap;
                        else
                            measuredWidth += defaultColumnWidth + columnGap;
                    }
                }
                
                if (measuredWidth > 0)
                    measuredWidth -= columnGap;
            }
        }
        
        if (!isNaN(grid.explicitHeight))
