             return 0.0;
         if ((iy0 >= y0) && (iy1 <= y1))
             return 1.0;
-        if (index == r0)
-            return (iy1 - y0) / (iy1 - iy0);
-        else 
-            return (y1 - iy0) / (iy1 - iy0);
+        return (Math.min(y1, iy1) - Math.max(y0, iy0)) / (iy1 - iy0);
 	}
 	
 	/**

    *  
    *  @private
    */
    private static function itemScan(g:GroupBase, i:int, dir:int):Rectangle
    {
    	var n:int = g.numLayoutItems;
    	while((i >= 0) && (i < n))

                firstIndex = firstIndexInView;
                if (inView(firstIndex) >= 1)
                   firstIndex = Math.max(0, firstIndex -1);
                itemR = findLayoutItemBounds(g, firstIndex, -1);
                break;
            }
             
