Please run rpctrace under gdb, set a breakpoint at __assert_fail, and examine rpctrace's data structure when it hits. Show us what *inp and *info look like when the assert fails. You could also insert some printfs in new_send_wrapper and new_send_once_wrapper so the output indicates all the bookkeeping that went on before the mismatch arises.