diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py
index 13ef372..e555ffb 100644
--- a/Lib/idlelib/rpc.py
+++ b/Lib/idlelib/rpc.py
@@ -5,7 +5,7 @@
 has only one client per server, this was not a limitation.
 
    +---------------------------------+ +-------------+
-   | SocketServer.BaseRequestHandler | | SocketIO    |
+   | socketserver.BaseRequestHandler | | SocketIO    |
    +---------------------------------+ +-------------+
                    ^                   | register()  |
                    |                   | unregister()|
@@ -31,7 +31,7 @@
 import os
 import socket
 import select
-import SocketServer
+import socketserver
 import struct
 import pickle
 import threading
@@ -66,12 +66,12 @@
 BUFSIZE = 8*1024
 LOCALHOST = '127.0.0.1'
 
-class RPCServer(SocketServer.TCPServer):
+class RPCServer(socketserver.TCPServer):
 
     def __init__(self, addr, handlerclass=None):
         if handlerclass is None:
             handlerclass = RPCHandler
-        SocketServer.TCPServer.__init__(self, addr, handlerclass)
+        socketserver.TCPServer.__init__(self, addr, handlerclass)
 
     def server_bind(self):
         "Override TCPServer method, no bind() phase for connecting entity"
@@ -492,7 +492,7 @@
     def __init__(self, oid):
         self.oid = oid
 
-class RPCHandler(SocketServer.BaseRequestHandler, SocketIO):
+class RPCHandler(socketserver.BaseRequestHandler, SocketIO):
 
     debugging = False
     location = "#S"  # Server
@@ -500,10 +500,10 @@
     def __init__(self, sock, addr, svr):
         svr.current_handler = self ## cgt xxx
         SocketIO.__init__(self, sock)
-        SocketServer.BaseRequestHandler.__init__(self, sock, addr, svr)
+        socketserver.BaseRequestHandler.__init__(self, sock, addr, svr)
 
     def handle(self):
-        "handle() method required by SocketServer"
+        "handle() method required by socketserver"
         self.mainloop()
 
     def get_remote_proxy(self, oid):
