diff --git a/include/grpc++/config.h b/include/grpc++/config.h
index cfa8d3be9f11317c009aade97e2a6834f17b1554..e753e4f9761f288b7cab7892bcd0e91eb7a8ac20 100644
--- a/include/grpc++/config.h
+++ b/include/grpc++/config.h
@@ -34,7 +34,6 @@
 #ifndef GRPCXX_CONFIG_H
 #define GRPCXX_CONFIG_H
 
-#include <string>
 
 #ifdef GRPC_OLD_CXX
 #define GRPC_FINAL
@@ -44,9 +43,23 @@
 #define GRPC_OVERRIDE override
 #endif
 
+#ifndef GRPC_CUSTOM_STRING
+#include <string>
+#define GRPC_CUSTOM_STRING std::string
+#endif
+
+#ifndef GRPC_CUSTOM_MESSAGE
+#include <google/protobuf/message.h>
+#define GRPC_CUSTOM_MESSAGE ::google::protobuf::Message
+#endif
+
 namespace grpc {
 
-typedef std::string string;
+typedef GRPC_CUSTOM_STRING string;
+
+namespace protobuf {
+typedef GRPC_CUSTOM_MESSAGE Message;
+}  // namespace protobuf
 
 }  // namespace grpc