What happens if you simply call my_thread.setDaemon(True)
(or in Python 2.6): my_thread.daemon = True ? That is the documented way to exit worker threads when you want the application to exit. From the threading module docs: "The entire Python program exits when no alive non-daemon threads are left." Skip -- http://mail.python.org/mailman/listinfo/python-list