         switch (unit)
         {
         	case ScrollUnit.UP:
-        	    return (scrollR.y <= 0) ? 0 : -1;
+        	    return Math.max(-1, minDelta);
         	    
         	case ScrollUnit.DOWN:
-        	    return (scrollR.y >= maxDelta) ? 0 : 1;
+        	    return Math.min(1, maxDelta);
         	    
             case ScrollUnit.PAGE_UP:
                 return Math.max(minDelta, -scrollR.height);

            default:
                return 0;
        }    	
    } 
     
    /**
     *  Called when the verticalScrollPosition or horizontalScrollPosition 

        switch (unit)
        {
            case ScrollUnit.LEFT:
                return Math.max(-1, minDelta);
                
            case ScrollUnit.RIGHT:
                return Math.min(1, maxDelta);
                
            case ScrollUnit.PAGE_LEFT:
                return Math.max(minDelta, -scrollR.width);
