diff --git a/server.py b/server.py
index 2c5160c2c46c9b7244b1bdaa56b2bfd6e49efddf..6a53bf5ce3d8107437c28338dc4a5283da409251 100644
--- a/server.py
+++ b/server.py
@@ -236,9 +236,7 @@ def main(config):
 	CustomRequestHandler.group_directory = group_directory
 
 	if config['listen_addr'].startswith('unix:'):
-		class ForkingUnixStreamServer(socketserver.ForkingMixIn, socketserver.UnixStreamServer):
-			pass
-		ForkingUnixStreamServer(config['listen_addr'][5:], RequestHandler).serve_forever()
+		socketserver.ThreadingUnixStreamServer(config['listen_addr'][5:], CustomRequestHandler).serve_forever()
 	else:
 		addr = config['listen_addr']
 		port = '389'
@@ -248,7 +246,7 @@ def main(config):
 				port = remainder[1:]
 		elif ':' in addr:
 			addr, port = addr.split(':')
-		socketserver.ForkingTCPServer((addr, int(port)), CustomRequestHandler).serve_forever()
+		socketserver.ThreadingTCPServer((addr, int(port)), CustomRequestHandler).serve_forever()
 
 if __name__ == '__main__':
 	if len(sys.argv) != 2: