         // Output the tile's merge-path carry
         if (threadIdx.x == 0)
         {
-            d_tile_carry_rows[blockIdx.x] = block_carry.offset;
-            d_tile_carry_values[blockIdx.x] = block_carry.value;
+            d_tile_carry_rows[blockIdx.x] = block_coord.x;
+            d_tile_carry_values[blockIdx.x] = block_carry;
         }
     }
 

        __syncthreads();

        CoordinateT         block_coord = temp_storage.block_coords[0];
        ItemOffsetPairT     block_carry(0.0, 0);

        for (OffsetT block_offset = even_share.block_offset;
            block_offset < even_share.block_end;

     */
    __device__ __forceinline__ void ConsumeTile(
        CoordinateT&        tile_coord,
        ValueT&             block_carry)
    {
        __syncthreads();

