diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc
index 9ec93bc626274ad1f5ca11ed6cd61ff5d0886f69..0922a6e4603a2552af2678bfa80e42f9d16f52fc 100644
--- a/src/cpp/common/call.cc
+++ b/src/cpp/common/call.cc
@@ -31,6 +31,7 @@
  *
  */
 
+#include <google/protobuf/message.h>
 #include <grpc/support/alloc.h>
 #include <grpc++/impl/call.h>
 #include <grpc++/client_context.h>
@@ -144,6 +145,7 @@ void CallOpBuffer::AddSendMessage(const google::protobuf::Message& message) {
 
 void CallOpBuffer::AddRecvMessage(google::protobuf::Message* message) {
   recv_message_ = message;
+  recv_message_->Clear();
 }
 
 void CallOpBuffer::AddClientSendClose() { client_send_close_ = true; }