ParMetis Dead-lock under MPICH 1.2.5

I sometimes see dead-lock in parMetis using MPICH 1.2.5. I wondered if anyone else has experienced this..?
I can't seem to get consistent failures so it's difficult to track down. From what I see parMetis
"exchanges" information between processes which share a decomposed graph boundary. These exchanges are of the form:

for number of neighbours
post asynchronous recvs

fill send buffers

for number of neighbours
post asychronous sends

wait for sends/recvs to complete

In theory this should be dead-lock free so I suspect the issue is with MPICH and not parMetis.