diff --git a/Lib/test/output/test_logging b/Lib/test/output/test_logging
index 9e52c03..3cbbebf 100644
--- a/Lib/test/output/test_logging
+++ b/Lib/test/output/test_logging
@@ -1,5 +1,4 @@
 test_logging
-About to start TCP server...
 -- log_test0  begin  ---------------------------------------------------
 CRITICAL:ERR:Message 0
 ERROR:ERR:Message 1
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 4e74394..113df5c 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -24,7 +24,7 @@
 Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved.
 """
 
-from select import select
+import select
 import os, sys, string, struct, types, cPickle, cStringIO
 import socket, threading, time, locale
 import logging, logging.handlers, logging.config
@@ -64,7 +64,6 @@
                 if len(chunk) < 4:
                     break
                 slen = struct.unpack(">L", chunk)[0]
-                #print slen
                 chunk = self.connection.recv(slen)
                 while len(chunk) < slen:
                     chunk = chunk + self.connection.recv(slen - len(chunk))
@@ -102,13 +101,19 @@
     def serve_until_stopped(self):
         abort = 0
         while not abort:
-            rd, wr, ex = select([self.socket.fileno()],
+            rd, wr, ex = select.select([self.socket.fileno()],
                                        [], [],
                                        self.timeout)
             if rd:
                 self.handle_request()
             abort = self.abort
 
+    def process_request(self, request, client_address):
+        #import threading
+        t = threading.Thread(target = self.finish_request,
+                             args = (request, client_address))
+        t.start()
+
 def runTCP(tcpserver):
     tcpserver.serve_until_stopped()
 
@@ -421,7 +426,7 @@
     #Set up servers
     threads = []
     tcpserver = LogRecordSocketReceiver()
-    sys.stdout.write("About to start TCP server...\n")
+    #sys.stdout.write("About to start TCP server...\n")
     threads.append(threading.Thread(target=runTCP, args=(tcpserver,)))
 
     for thread in threads:
@@ -447,18 +452,17 @@
         test3()
         banner("log_test3", "end")
 
-        banner("logrecv output", "begin")
-        sys.stdout.write(sockOut.getvalue())
-        sockOut.close()
-        banner("logrecv output", "end")
-
     finally:
         #shut down server
         tcpserver.abort = 1
         for thread in threads:
             thread.join()
+        banner("logrecv output", "begin")
+        sys.stdout.write(sockOut.getvalue())
+        sockOut.close()
+        banner("logrecv output", "end")
+        sys.stdout.flush()
 
 if __name__ == "__main__":
     sys.stdout.write("test_logging\n")
     test_main()
-    sys.stdout.flush()
