--- asynchat.py~	Wed Jan 30 22:13:08 2002
+++ asynchat.py	Wed Aug 14 21:20:00 2002
@@ -150,7 +150,17 @@
 
     def push (self, data):
         self.producer_fifo.push (simple_producer (data))
-        self.initiate_send()
+        ## DM: the following call can lead to 2 identical "send"s in a 
+        ##     multithreaded application. Do it in the main loop, instead.
+        ##
+        ##     Then, you need to explicitly wake up the main loop.
+        ##
+        ##     Probably, the call below had precisely this purpose,
+        ##     but it does not fulfill this purpose and can have
+        ##     non-deterministic behaviour in multi-threaded
+        ##     applications (where the caller of "push" is run in a
+        ##     different thread than the main loop.
+        #self.initiate_send()
 
     def push_with_producer (self, producer):
         self.producer_fifo.push (producer)

 	  	 
