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