                 (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;
         }
         

    
    /**
     *  @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.

        g.drawRect(0, 0, 1, 1);
        g.endFill();
        $addChild(focusOwner);
        focusOwner.tabEnabled = true;
        focusOwner.$visible = true;
    }
    
