This patch had a bug - resume_pending_requests must not return if check_request fails but just continue as check_request already handled this request and just this one. I'll resend a new version of this patch now.