Hello, Jonathan!<br><br>I have tested your example with mpich2 1.0.6 the previous stable release of mpich2 and<br>found the example work correctly. I have compiled your program with mpich2-1.0.6p1 with<br>gather.c taken from src/mpi/coll of 
mpich2-1.0.6 distribution and found the example to work<br>as well. The problem with 1.0.6p1 seems to show only with messages of size greater than the<br>value of MPIR_GATHER_VSMALL_MSG set in mpiimpl.h . Currently this constant is set to 
<br>1024 bytes which explains why reducing DATASIZE to less than 256 removes the bug on <br>32 bit machines. I hope someone from the developers will come up with a fix soon, since<br>the algorithm seems to have been slightly modified in 
1.0.6p1.<br><br>Best regards,<br>&nbsp; Dima<br><br><br>