Hi My problem is quite simple: my python application is multithreading and calls rsync from inside a thread, using ssh as tunnel. Unfortunately python2.2 support for multithreading is not fully compliant with signal handling so when application runs it hangs up. I see that in main.c you use two processes into do_recv, one of these processes is killed by SIGUSR2. This synchronization doesn't work well with python2.2, so I substitute the sleep/kill synchro with semaphore synchro. Application doesn't hang up but an error occur in io_flush. Is there any kind of reason to use sleep/kill synchronization? Maybe, it is usefull to flush data? My patch is available at http://www.prosa.it/~paolo/pub/main.c Thanks -- Paolo Andreetto http://www.prosa.it --