                 (grid.caretColumnIndex < 0 || 
                     grid.caretColumnIndex >= getColumnsLength())))
         {
-            if (scroller)
-                scroller.dispatchEvent(event);
+            // We're not going to handle this event, so give the scroller a chance.
+            if (scroller && (scrollerEvent != event))
+            {
+                scrollerEvent = event.clone() as KeyboardEvent;
+                scroller.dispatchEvent(scrollerEvent);
+            }
             return;
         }
         

    {
        if (!grid || event.isDefaultPrevented())
            return;

        // Ctrl-A only comes thru on Mac.  On Windows it is a SELECT_ALL
        // event.

    
    /**
     *  @private
     *  Used to prevent keyboard events that have been redispatched to the Scroller from being
     *  redispatched a second time when the bubble back up.
     */
    private var scrollerEvent:KeyboardEvent = null;
    
    /**
     *  @private
     *  Build in basic keyboard navigation support in Grid. The focus is on
     *  the DataGrid which means the Scroller doesn't see the Keyboard events
     *  unless the event is dispatched to it.
