     {
         if ((_length == 0) || (distance < 0))
             return -1;
-            
-        var curDistance:Number = 0;
+
+        // The area of the first item includes the majorAxisOffset            
+        var curDistance:Number = majorAxisOffset;
+        if (distance < curDistance)
+            return 0;
+        
         var index:int = -1;
         var block:Block = null;
         var blockGap:Number = _gap * BLOCK_SIZE;

    public function start(index:uint):Number
    {
        if ((_length == 0) || (index == 0))
            return 0;
            
        if (index >= _length)
            throw new Error(resourceManager.getString("layout", "invalidIndex"));            

        var distance:Number = 0;
        var blockIndex:uint = index >> BLOCK_SHIFT;
        for (var i:int = 0; i < blockIndex; i++)
        {

    }

    //----------------------------------
    //  majorAxisOffset
    //----------------------------------
    
    private var _majorAxisOffset:Number = 0;
    
    /**
     *  The offset of the first item from the origin in the majorAxis
     *  direction. This is useful when implementing padding,
     *  in addition to gaps, for virtual layouts.
     *  
     *  @see #gap
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get majorAxisOffset():Number
    {
        return _majorAxisOffset;
    }

    /**
     * @private
     */
    public function set majorAxisOffset(value:Number):void
    {
        _majorAxisOffset = value;
    }

    //----------------------------------
    //  gap
    //----------------------------------
    
