--- SocketHandler.py-tornado-orig	2004-12-04 12:05:55.000000000 -0800
+++ /usr/lib/python2.3/site-packages/BitTornado/SocketHandler.py	2004-12-04 12:14:22.000000000 -0800
@@ -142,7 +142,7 @@
             if k.socket is not None:
                 self._close_socket(k)
 
-    def bind(self, port, bind = '', reuse = False, ipv6_socket_style = 1, upnp = 0):
+    def bind(self, port, bind = '', reuse = True, ipv6_socket_style = 1, upnp = 0):
         port = int(port)
         addrinfos = []
         self.servers = {}
@@ -203,7 +203,7 @@
             self.port_forwarded = port
         self.port = port
 
-    def find_and_bind(self, minport, maxport, bind = '', reuse = False,
+    def find_and_bind(self, minport, maxport, bind = '', reuse = True,
                       ipv6_socket_style = 1, upnp = 0, randomizer = False):
         e = 'maxport less than minport - no ports to check'
         if maxport-minport < 50 or not randomizer:
@@ -236,6 +236,8 @@
             handler = self.handler
         sock = socket.socket(socktype, socket.SOCK_STREAM)
         sock.setblocking(0)
+        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+        sock.bind(('', self.port))
         try:
             sock.connect_ex(dns)
         except socket.error:
