1002c1002,1011
< tickEvent.schedule(pkt, next_tick);
---
> if (!tickEvent.scheduled()) {
> tickEvent.schedule(pkt, next_tick);
> } else {
> // In the case of a split transaction and a cache that is
> // faster than a CPU we could get two responses before
> // next_tick expires
> if (!retryEvent.scheduled())
> schedule(retryEvent, next_tick);
> return false;
> }