I was getting random SEGVs when disconnecting from the VNC server. I tracked it down to the fact that if you remove a IOHandler from another IOHandler, all sorts of badness may result as you're removing entries from a linked list while transversing it. My solution is to simply add a deleted flag to each entry and walk the list a second time. During the second transversal, we'll remove nodes that need removing. Haven't seen the SEGV since I started using this patch. Regards, Anthony Liguori