What I forgot to tell you is that the word "could" means that the event could fire while there is nothing in the queue. Also you cannot rely on the 1+2+3-1 because there could be -1 in the middle. The chance that that happens when you debug is much smaller. Also the queue is 256 bytes before it overflows.