Hi David, I'm surprised the change for polling made it worse, previously we were doing a specified timeout to query the X11 event file descriptor and then come out after a specified time, now we just use sleep and then come out after the specified time, this should mean less CPU not more, as I'm sure sleep is less CPU intensive than waiting on a file descriptor to be readable. The reason we come out is so that the gc can get called after a specific interval has passed, this is only done on idle though. Anyway, thanks for the update, I'll look further in to this.