- _xcb_map_put(c->in.replies, lastread, c->in.current_reply);
- c->in.current_reply = _xcb_queue_new();
+ pending_reply *oldpend = c->in.pending_replies;
+ if(oldpend && oldpend->request == lastread)
+ {
+ c->in.pending_replies = oldpend->next;
+ if(!oldpend->next)
+ c->in.pending_replies_tail = &c->in.pending_replies;
+ free(oldpend);
+ }
+ if(!_xcb_queue_is_empty(c->in.current_reply))
+ {
+ _xcb_map_put(c->in.replies, lastread, c->in.current_reply);
+ c->in.current_reply = _xcb_queue_new();
+ }