I made a big effort to understand this stuff with put_async and threading, but here is a point I can't get over.

I read a lot and understood that means of waiting for a thread is join, and in wikipedia.py, join must be a method of _putthread which is the Thread object. Noe, wherever I write the line
(I tried put_async, async_put and even replace.py which I know is not a good solution) it freezes my command window as if the thread never terminated.
_putthread.join(time) waits for the given time, but this is not appropriate, just for test.
Does any script really use this callback at all? Which one?
Line 8054 in wikipedia.py says "an explicit end-of-Queue marker is needed", and this is supposed to be a call for async_put with None as value of page. But I don't see anywhere this dummy call for async_put. May that be a bug or I just misunderstand?
(Btw, Python 2.4 should be forgotten.)

Please, I need your help.