diff -Nrup a/strace.c b/strace.c --- a/strace.c 2013-07-17 14:39:50.603696069 -0600 +++ b/strace.c 2013-07-17 14:43:27.625962443 -0600 @@ -2184,6 +2184,11 @@ handle_stopped_tcbs(struct tcb *tcp) status = tcp->wait_status; pid = tcp->pid; + /* we must re-fetch all registers for each pid in list */ + clear_regs(); + if (WIFSTOPPED(status)) + get_regs(pid); + event = ((unsigned)status >> 16); if (WIFSIGNALED(status)) { if (pid == strace_child)