When a small lag occurs, all events trying to fire at that moment gets disconnected due to a timeout error. I don’t think this should be happening as it’s a serious issue for events to disconnect like that. There’s some ways to avoid it by using loops and event:wait() instead of the connection object. But still this shouldn’t be happening.
A solution would be by not disconnection the event when the error occurs, but just an error in calling the listener function at that moment.
Reproduction code: http://pastebin.com/7L3mavPh