Index: Lib/test/test_socket.py
===================================================================
--- Lib/test/test_socket.py	(revision 56747)
+++ Lib/test/test_socket.py	(working copy)
@@ -3,6 +3,7 @@
 import unittest
 from test import test_support
 
+import errno
 import socket
 import select
 import time
@@ -471,6 +472,22 @@
         self.assert_(name[0] in ("0.0.0.0", my_ip_addr), '%s invalid' % name[0])
         self.assertEqual(name[1], PORT+1)
 
+    def testPortCollision(self):
+        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        sock.bind(("0.0.0.0", PORT+2))
+        try:
+            sock.bind(("0.0.0.0", PORT+2))
+        except socket.error as err:
+            if err[0] == errno.EADDRINUSE:
+                # succeed
+                pass
+            else:
+                self.fail("Expected EADDRINUSE but got %s:%s" %
+                          (errno.errorcode[err[0]], err[1]))
+        else:
+            self.fail("Expected EADDRINUSE but instead sock.bind() succeeded.")
+            
+
     def testGetSockOpt(self):
         # Testing getsockopt()
         # We know a socket should start without reuse==0
