         resizeAnchorX = event.localX;
         resizeColumnWidth = grid.getColumnWidth(resizeColumn.columnIndex);
         
+        // If we're laying out RTL then dragging to the left - which increases
+        // a column's width - and the Grid's width is unconstrained, then only
+        // allow the column's width to grow to the extent that the adjacent 
+        // (next) column can shrink. 
+        
+        if (isNaN(estimatedWidth) && (layoutDirection == LayoutDirection.RTL))
+        {
+            const nextColumnIndex:int = grid.getNextVisibleColumnIndex(resizeColumn.columnIndex);
+            nextColumn = getColumnAt(nextColumnIndex);
+            nextColumnWidth = Math.ceil(grid.getColumnWidth(nextColumnIndex));           
+        }
+        else
+        {
+            nextColumn = null;
+            nextColumnWidth = NaN;
+        }
+        
         // Give all of the columns to the left of this one an explicit so that resizing
-        // this column doesn't change their width and, consequently, this columns location.
+        // this column doesn't change their width and, consequently, this column's location.
         
         const resizeColumnIndex:int = resizeColumn.columnIndex;
         for (var columnIndex:int = 0; columnIndex < resizeColumnIndex; columnIndex++)

    private var resizeColumn:GridColumn = null;
    private var resizeAnchorX:Number = NaN;
    private var resizeColumnWidth:Number = NaN;
    
    /**
     *  @private

     *  If the mouse button is depressed while outside of the grid, the hover 
     *  indicator is not enabled again until GRID_MOUSE_UP or GRID_ROLL_OUT. 
     */
    protected function grid_rollOutHandler(event:GridEvent):void
    {
        grid.hoverRowIndex = -1;
        grid.hoverColumnIndex = -1;
