Index: /mpich2/trunk/src/mpid/common/datatype/dataloop/segment_ops.c
===================================================================
--- /mpich2/trunk/src/mpid/common/datatype/dataloop/segment_ops.c (revision 4873)
+++ /mpich2/trunk/src/mpid/common/datatype/dataloop/segment_ops.c (revision 4874)
@@ -944,10 +944,8 @@
 	     */
             paramp->disps[last_idx+1]   = MPI_PTR_DISP_CAST_TO_MPI_AINT bufp +
-		rel_off + offsetarray[last_idx+1];
-	    paramp->blklens[last_idx+1] = size;
+		rel_off + offsetarray[i];
+	    paramp->blklens[last_idx+1] = size; /* these blocks are in bytes */
 	    paramp->index++;
 	}
-
-	rel_off += offsetarray[i];
     }
 
@@ -955,5 +953,4 @@
      * blocks_p
      */
-
     DLOOP_Assert(blocks_left == 0);
     return 0;
