diff --git a/src/rx/rx.c b/src/rx/rx.c index 45861e5a4e..1a08e305bb 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -3311,12 +3311,13 @@ rxi_ReceiveServerCall(osi_socket socket, struct rx_packet *np, */ #ifdef RX_ENABLE_LOCKS if (call->state == RX_STATE_ACTIVE) { + int old_error = call->error; rxi_WaitforTQBusy(call); /* If we entered error state while waiting, * must call rxi_CallError to permit rxi_ResetCall * to processed when the tqWaiter count hits zero. */ - if (call->error) { + if (call->error && call->error != old_error) { rxi_CallError(call, call->error); MUTEX_EXIT(&call->lock); return NULL;