diff --git a/python/google/protobuf/internal/service_reflection_test.py b/python/google/protobuf/internal/service_reflection_test.py
index 895d24d365319a2cf53e9bcd6fe1f6a46600c269..d43ed641188d48725db0f43dd166384de2028664 100755
--- a/python/google/protobuf/internal/service_reflection_test.py
+++ b/python/google/protobuf/internal/service_reflection_test.py
@@ -64,6 +64,24 @@ class FooUnitTest(unittest.TestCase):
     self.assertEqual('Method Bar not implemented.',
                      rpc_controller.failure_message)
     self.assertEqual(None, self.callback_response)
+    
+    class MyServiceImpl(unittest_pb2.TestService):
+      def Foo(self, rpc_controller, request, done):
+        self.foo_called = True
+      def Bar(self, rpc_controller, request, done):
+        self.bar_called = True
+
+    srvc = MyServiceImpl()
+    rpc_controller.failure_message = None
+    srvc.Foo(rpc_controller, unittest_pb2.FooRequest(), MyCallback)
+    self.assertEqual(None, rpc_controller.failure_message)
+    self.assertEqual(True, srvc.foo_called)
+
+    rpc_controller.failure_message = None
+    srvc.CallMethod(service_descriptor.methods[1], rpc_controller,
+                    unittest_pb2.BarRequest(), MyCallback)
+    self.assertEqual(None, rpc_controller.failure_message)
+    self.assertEqual(True, srvc.bar_called)
 
   def testServiceStub(self):
     class MockRpcChannel(service.RpcChannel):
diff --git a/python/google/protobuf/service_reflection.py b/python/google/protobuf/service_reflection.py
index 6e3bf14e8f25870101c0d14d1cdff1d67fce66c2..6439eaa43e145a31f8eaa6e200674923bd845d46 100755
--- a/python/google/protobuf/service_reflection.py
+++ b/python/google/protobuf/service_reflection.py
@@ -160,8 +160,8 @@ class _ServiceBuilder(object):
     if method_descriptor.containing_service != self.descriptor:
       raise RuntimeError(
           'CallMethod() given method descriptor for wrong service type.')
-    method = getattr(self.cls, method_descriptor.name)
-    method(srvc, rpc_controller, request, callback)
+    method = getattr(srvc, method_descriptor.name)
+    method(rpc_controller, request, callback)
 
   def _GetRequestClass(self, method_descriptor):
     """Returns the class of the request protocol message.