Make as sure as we can that the forked child does not return and
continue the tests.
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index f7b62a9..c27e69f 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -124,17 +124,20 @@
 	conn.close()
 	os._exit(0)
     else:
-	# child is client
-	time.sleep(1)
-	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-	if verbose:
-	    print 'child connecting'
-	s.connect(hostname, PORT)
-	msg = 'socket test'
-	s.send(msg)
-	data = s.recv(1024)
-	if msg <> data:
-	    print 'parent/client mismatch'
-	s.close()
+	try:
+	    # child is client
+	    time.sleep(1)
+	    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+	    if verbose:
+		print 'child connecting'
+	    s.connect(hostname, PORT)
+	    msg = 'socket test'
+	    s.send(msg)
+	    data = s.recv(1024)
+	    if msg <> data:
+		print 'parent/client mismatch'
+	    s.close()
+	finally:
+	    os._exit(1)
 except socket.error:
     pass