diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index fd6b8e9..53b3ad7 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -38,8 +38,6 @@
     help="use zlib wrapper for compressed transport")
 parser.add_option("--ssl", action="store_true", dest="ssl",
     help="use SSL for encrypted transport")
-parser.add_option("--multiple", action="store_true", dest="multiple",
-    help="use Multiple service")
 parser.add_option("--http", dest="http_path",
     help="Use the HTTP transport with the specified path")
 parser.add_option('-v', '--verbose', action="store_const",
@@ -59,7 +57,6 @@
 
 from ThriftTest import ThriftTest, SecondService
 from ThriftTest.ttypes import *
-from thrift.protocol import TMultiplexedProtocol
 from thrift.transport import TTransport
 from thrift.transport import TSocket
 from thrift.transport import THttpClient
@@ -90,14 +87,7 @@
         self.transport = TZlibTransport.TZlibTransport(self.transport, 9)
     self.transport.open()
     protocol = self.protocol_factory.getProtocol(self.transport)
-    if options.multiple:
-        p = TMultiplexedProtocol.TMultiplexedProtocol(protocol, "ThriftTest")
-        self.client = ThriftTest.Client(p)
-        p = TMultiplexedProtocol.TMultiplexedProtocol(protocol, "SecondService")
-        self.client2 = SecondService.Client(p)
-    else:
-        self.client = ThriftTest.Client(protocol)
-        self.client2 = None
+    self.client = ThriftTest.Client(protocol)
 
   def tearDown(self):
     # Close!
@@ -216,9 +206,6 @@
     self.client.testOneway(1) # type is int, not float
     self.assertEqual(self.client.testString('Python'), 'Python')
 
-  def testblahBlah(self):
-    if self.client2:
-       self.assertEqual(self.client2.blahBlah(), None)
 
 class NormalBinaryTest(AbstractTest):
   protocol_factory = TBinaryProtocol.TBinaryProtocolFactory()
diff --git a/test/py/TestServer.py b/test/py/TestServer.py
index 6ee0399..98446a5 100755
--- a/test/py/TestServer.py
+++ b/test/py/TestServer.py
@@ -33,8 +33,6 @@
     help="use zlib wrapper for compressed transport")
 parser.add_option("--ssl", action="store_true", dest="ssl",
     help="use SSL for encrypted transport")
-parser.add_option("--multiple", action="store_true", dest="multiple",
-    help="use multiple service")
 parser.add_option('-v', '--verbose', action="store_const",
     dest="verbose", const=2,
     help="verbose output")
@@ -50,10 +48,9 @@
 
 sys.path.insert(0, options.genpydir)
 
-from ThriftTest import ThriftTest, SecondService
+from ThriftTest import ThriftTest
 from ThriftTest.ttypes import *
 from thrift.Thrift import TException
-from thrift import TMultiplexedProcessor
 from thrift.transport import TTransport
 from thrift.transport import TSocket
 from thrift.transport import TZlibTransport
@@ -67,12 +64,6 @@
     'compact': TCompactProtocol.TCompactProtocolFactory,
     'json': TJSONProtocol.TJSONProtocolFactory}
 
-class SecondHandler:
-
-  def blahBlah(self):
-    if options.verbose > 1:
-      print 'blahBlah()'
-
 class TestHandler:
 
   def testVoid(self):
@@ -199,15 +190,8 @@
 server_type = args[0]
 
 # Set up the handler and processor objects
-if not options.multiple:
-    handler   = TestHandler()
-    processor = ThriftTest.Processor(handler)
-else:
-    processor = TMultiplexedProcessor.TMultiplexedProcessor()
-    handler   = TestHandler()
-    processor.registerProcessor("ThriftTest", ThriftTest.Processor(handler))
-    handler   = SecondHandler()
-    processor.registerProcessor("SecondService", SecondService.Processor(handler))
+handler   = TestHandler()
+processor = ThriftTest.Processor(handler)
 
 # Handle THttpServer as a special case
 if server_type == 'THttpServer':
