             
             // Event Handlers
             
-            grid.addEventListener(GridEvent.GRID_MOUSE_DOWN, grid_mouseDownHandler);
-            grid.addEventListener(GridEvent.GRID_MOUSE_UP, grid_mouseUpHandler);
-            grid.addEventListener(GridEvent.GRID_ROLL_OVER, grid_rollOverHandler);
-            grid.addEventListener(GridEvent.GRID_ROLL_OUT, grid_rollOutHandler);
+            grid.addEventListener(GridEvent.GRID_MOUSE_DOWN, grid_mouseDownHandler, false, EventPriority.DEFAULT_HANDLER);
+            grid.addEventListener(GridEvent.GRID_MOUSE_UP, grid_mouseUpHandler, false, EventPriority.DEFAULT_HANDLER);
+            grid.addEventListener(GridEvent.GRID_ROLL_OVER, grid_rollOverHandler, false, EventPriority.DEFAULT_HANDLER);
+            grid.addEventListener(GridEvent.GRID_ROLL_OUT, grid_rollOutHandler, false, EventPriority.DEFAULT_HANDLER);
             grid.addEventListener(GridCaretEvent.CARET_CHANGE, grid_caretChangeHandler);            
             grid.addEventListener(FlexEvent.VALUE_COMMIT, grid_valueCommitHandler);
             grid.addEventListener("invalidateSize", grid_invalidateSizeHandler);            

     */
    protected function grid_rollOverHandler(event:GridEvent):void
    {
        // The related object is the object that was previously under
        // the pointer.
        if (event.buttonDown && event.relatedObject != grid)

     */
    protected function grid_mouseDownHandler(event:GridEvent):void
    {
        if (event.isDefaultPrevented())
            return;
        
        const isCellSelection:Boolean = isCellSelectionMode();

        const rowIndex:int = event.rowIndex;
