hmm. In BlitzPlus I got unreliability but this was due me calling it more than once and each call cleans out the buffer (of one hit at least). So in the end I used TonyG's method of only calling once per loop. Also have you used flushmouse anywhere in your loop? If so you might not be giving enough time between the flush and the mousehit for a new hit to be registered. I did this by accident too and it resulted in unreliable mouse performance.