diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index 471e030..18aea86 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -38,6 +38,8 @@
     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("--framed", action="store_true", dest="framed",
     help="use framed transport")
 parser.add_option("--http", dest="http_path",
@@ -55,8 +57,9 @@
 
 sys.path.insert(0, options.genpydir)
 
-from ThriftTest import ThriftTest
+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
@@ -84,7 +87,14 @@
         self.transport = TZlibTransport.TZlibTransport(self.transport, 9)
     self.transport.open()
     protocol = self.protocol_factory.getProtocol(self.transport)
-    self.client = ThriftTest.Client(protocol)
+    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
 
   def tearDown(self):
     # Close!
@@ -203,6 +213,10 @@
     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 28241cc..8022341 100755
--- a/test/py/TestServer.py
+++ b/test/py/TestServer.py
@@ -33,6 +33,8 @@
     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")
@@ -46,9 +48,10 @@
 
 sys.path.insert(0, options.genpydir)
 
-from ThriftTest import ThriftTest
+from ThriftTest import ThriftTest, SecondService
 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
@@ -62,6 +65,12 @@
     'compact': TCompactProtocol.TCompactProtocolFactory,
     'json': TJSONProtocol.TJSONProtocolFactory}
 
+class SecondHandler:
+
+  def blahBlah(self):
+    if options.verbose > 1:
+      print 'blahBlah()'
+
 class TestHandler:
 
   def testVoid(self):
@@ -188,8 +197,15 @@
 server_type = args[0]
 
 # Set up the handler and processor objects
-handler = TestHandler()
-processor = ThriftTest.Processor(handler)
+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))
 
 # Handle THttpServer as a special case
 if server_type == 'THttpServer':
