One obvious point is that, according to: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefWM_HOTKEY.asp
the WM_HOTKEY message is posted to the queue *of the thread which registered the hotkey*. I haven't yet tried it myself to see, but in your example the main thread registers the hotkey, and the KeyCatch thread is waiting to receive it. TJG -- http://mail.python.org/mailman/listinfo/python-list