         return elementChanged;
     }
        
+    /**
+     *  @private
+     *  Remove all the selected cells in column columnIndex.  No other 
+     *  adjustments to the selection are made.
+     */
+    private function removeCellsInColumn(columnIndex:int, 
+                                         bounds:Rectangle=null):Boolean
+    {
+        var elementChanged:Boolean;
+        
+        if (bounds == null)
+            bounds = getCellRegionsBounds();
+        
+        const firstIndex:int = bounds.top;
+        const lastIndex:int = bounds.bottom;
+        
+        // Find first seleted cell in column so we know if the selection
+        // changes and then remove all the rest of the rows in the column,
+        // whether or not they are selected.
+        for (var rowIndex:int = firstIndex; rowIndex < lastIndex; rowIndex++)
+        {
+            if (containsCell(rowIndex, columnIndex))
+            {
+                removeCellRegion(rowIndex, columnIndex, lastIndex - rowIndex, 1, false);
+                elementChanged = true;
+                break;
+            }
+        }
+        
+        return elementChanged;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Data Provider Collection methods

    
    /**
     *  @private
     *  Remove all the selected cells in row rowIndex.  No other adjustments to
     *  the selection are made.
     */

    /**
     *  @private
     *  If requiredSelection, then there must always be at least one row/cell
     *  selected.  If the selection is changed, the caret is changed to match.
     * 
     *  @return true if the selection has changed.
     */    
