 	//  Updating the GridDimensions' typicalCell sizes and columnWidths
 	//
 	//-------------------------------------------------------------------------- 
+    
+    /**
+     *  @private
+     *  Return width clamped to the column's minWidth and maxWidth properties.
+     */
+    private static function clampColumnWidth(width:Number, column:GridColumn):Number
+    {
+       const minColumnWidth:Number = column.minWidth;
+       const maxColumnWidth:Number = column.maxWidth;
+       
+       if (!isNaN(minColumnWidth))
+           width = Math.max(width, minColumnWidth);
+       if (!isNaN(maxColumnWidth))
+           width = Math.min(width, maxColumnWidth);
+       
+       return width;
+    }
 	
     /**
 	 *  @private

                var renderer:IGridItemRenderer = createTypicalItemRenderer(columnIndex);
                if (isNaN(cellWidth))
                {
                    cellWidth = renderer.getPreferredBoundsWidth();
                    gridDimensions.setTypicalCellWidth(columnIndex, cellWidth);
                }
                if (isNaN(cellHeight))

            {
                var oldColumnWidth:Number = gridDimensions.getColumnWidth(columnIndex);
                columnWidth = oldColumnWidth + Math.min(availableWidth, columnWidthDelta);
                columnWidth = clampColumnWidth(columnWidth, gridColumn);
                gridDimensions.setColumnWidth(columnIndex, columnWidth);  // store the column width
                availableWidth -= (columnWidth - oldColumnWidth);
            }
