                     newRow--;
                     newColumn = columnCount - 1;
                 }
+                else if (arrowKeysWrapFocus && newColumn == 0 && inRows && newRow == 0)
+                {
+                    newRow = rowCount - 1;
+                    newColumn = columnCount - 1;
+                }
                 else
                     newColumn--;
                 break;

                    newColumn--;
                    newRow = rowCount - 1;
                }
                else
                    newRow--;
                break; 

    /**
     *  @private 
     */  
    override public function getNavigationDestinationIndex(currentIndex:int, navigationUnit:uint, arrowKeysWrapFocus:Boolean):int
    {
        if (!target || target.numElements < 1)
            return -1; 
            
        var maxIndex:int = target.numElements - 1;

        // Special case when nothing was previously selected
        if (currentIndex == -1)
        {
            if (navigationUnit == NavigationUnit.UP || navigationUnit == NavigationUnit.LEFT)
                return arrowKeysWrapFocus ? maxIndex : -1;

            if (navigationUnit == NavigationUnit.DOWN || navigationUnit == NavigationUnit.RIGHT)
                return 0;    
