Guido> Didn't work for me, since my ap is a multi-threaded webserver and Guido> I only want one specific type of request to time out. Understood. Guido> I'm not going to change ftplib.py and all the others. Also understood. This has, as far as I know, been the response of everybody who has encountered this problem before. Most people are only interested in a single protocol (or module) and therefore aren't motivated to change/fix the other protocols which could benefit from timeouts. After all, who really wants to update gopherlib? So there is sits. Guido> I do think it's relevant to decide whether the timeout should be Guido> passed to the constructor or to the connect() method. I think it Guido> may be better to pass the timeout to the constructor. Another thing to consider is how this change might percolate up to urllib/urllib2. (I advocate leaving urllib alone, but urllib2 should probably grow a timeout feature.) Skip