     case .Vertical:
       size = CGSizeMake(CGRectGetWidth(contentRect), (furthestCellPosition.y + 1) * cellSize.height)
     case .Horizontal:
-      size = CGSizeMake((furthestCellPosition.x + 1) * cellSize.width, CGRectGetWidth(contentRect))
+      size = CGSizeMake((furthestCellPosition.x + 1) * cellSize.width, CGRectGetHeight(contentRect))
     }
 
     return size

    case .Vertical:
      size = UInt(CGRectGetWidth(contentRect) / cellSize.width)
    case .Horizontal:
      size = UInt(CGRectGetWidth(contentRect) / cellSize.height)
    }

    if size == 0 {

      unboundIndex = Int((CGRectGetMaxY(scrollFrame) / cellSize.height) + 1)

    case .Horizontal:
      unboundIndex = Int((CGRectGetMaxX(scrollFrame) / cellSize.width) + 1)
    }

    if (preemptivelyRenderLayout) {
