diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index a0a641b..b483ea8 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -198,16 +198,14 @@
         args = [sys.executable] + w + ["-c", "__import__('run').main()",
                                        str(port)]
         self.rpcpid = os.spawnv(os.P_NOWAIT, args[0], args)
-        # Idle starts listening for connection on localhost, retry since
-        # Idle may be restarted before port is available for rebinding
-        # XXX 25 July 2002 KBK Find out what is causing the delayed release!
-        for i in range(12):
+        # Idle starts listening for connection on localhost
+        for i in range(6):
             time.sleep(i)
             try:
                 self.rpcclt = rpc.RPCClient(addr)
                 break
             except socket.error, err:
-                if i < 5:
+                if i < 3:
                     print>>sys.__stderr__, ". ",
                 else:
                     print>>sys.__stderr__,"\nIdle socket error: " + err[1]\
diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py
index 267dd60..5bb0e64 100644
--- a/Lib/idlelib/rpc.py
+++ b/Lib/idlelib/rpc.py
@@ -403,6 +403,7 @@
 
     def __init__(self, address, family=socket.AF_INET, type=socket.SOCK_STREAM):
         self.sock = socket.socket(family, type)
+        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
         self.sock.bind(address)
         self.sock.listen(1)
 
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index cc3edf1..9ede2ff 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -26,13 +26,13 @@
         port = int(sys.argv[1])
     sys.argv[:] = [""]
     addr = ("localhost", port)
-    for i in range(12):
+    for i in range(6):
         time.sleep(i)
         try:
             svr = rpc.RPCServer(addr, MyHandler)
             break
         except socket.error, err:
-            if i < 5:
+            if i < 3:
                 print>>sys.__stderr__, ".. ",
             else:
                 print>>sys.__stderr__,"\nPython subprocess socket error: "\
