diff --git a/include/grpc++/channel.h b/include/grpc++/channel.h
index d6d72a9cf981fb3178a6dc2090ce30d1d093fea2..de3ebfebd48a26fd440626930fff783a7ea3aab3 100644
--- a/include/grpc++/channel.h
+++ b/include/grpc++/channel.h
@@ -54,13 +54,13 @@ template <class R>
 class ClientReader;
 template <class W>
 class ClientWriter;
-template <class R, class W>
+template <class W, class R>
 class ClientReaderWriter;
 template <class R>
 class ClientAsyncReader;
 template <class W>
 class ClientAsyncWriter;
-template <class R, class W>
+template <class W, class R>
 class ClientAsyncReaderWriter;
 template <class R>
 class ClientAsyncResponseReader;
@@ -98,13 +98,13 @@ class Channel GRPC_FINAL : public GrpcLibrary,
   friend class ::grpc::ClientReader;
   template <class W>
   friend class ::grpc::ClientWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ClientReaderWriter;
   template <class R>
   friend class ::grpc::ClientAsyncReader;
   template <class W>
   friend class ::grpc::ClientAsyncWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ClientAsyncReaderWriter;
   template <class R>
   friend class ::grpc::ClientAsyncResponseReader;
diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h
index ab8ffb6474f3272ad33d15ccd010d2bd7a582de0..24f80abdc8bfad50ca77dcd3494f575eddc9b84a 100644
--- a/include/grpc++/client_context.h
+++ b/include/grpc++/client_context.h
@@ -76,13 +76,13 @@ template <class R>
 class ClientReader;
 template <class W>
 class ClientWriter;
-template <class R, class W>
+template <class W, class R>
 class ClientReaderWriter;
 template <class R>
 class ClientAsyncReader;
 template <class W>
 class ClientAsyncWriter;
-template <class R, class W>
+template <class W, class R>
 class ClientAsyncReaderWriter;
 template <class R>
 class ClientAsyncResponseReader;
@@ -304,13 +304,13 @@ class ClientContext {
   friend class ::grpc::ClientReader;
   template <class W>
   friend class ::grpc::ClientWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ClientReaderWriter;
   template <class R>
   friend class ::grpc::ClientAsyncReader;
   template <class W>
   friend class ::grpc::ClientAsyncWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ClientAsyncReaderWriter;
   template <class R>
   friend class ::grpc::ClientAsyncResponseReader;
diff --git a/include/grpc++/completion_queue.h b/include/grpc++/completion_queue.h
index 0ea970417e602d785a6f973f7b8e92b2334c9ab3..b479239b63da1c71ea931be886f292e8b103f3a3 100644
--- a/include/grpc++/completion_queue.h
+++ b/include/grpc++/completion_queue.h
@@ -49,13 +49,13 @@ template <class R>
 class ClientReader;
 template <class W>
 class ClientWriter;
-template <class R, class W>
+template <class W, class R>
 class ClientReaderWriter;
 template <class R>
 class ServerReader;
 template <class W>
 class ServerWriter;
-template <class R, class W>
+template <class W, class R>
 class ServerReaderWriter;
 template <class ServiceType, class RequestType, class ResponseType>
 class RpcMethodHandler;
@@ -151,13 +151,13 @@ class CompletionQueue : public GrpcLibrary {
   friend class ::grpc::ClientReader;
   template <class W>
   friend class ::grpc::ClientWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ClientReaderWriter;
   template <class R>
   friend class ::grpc::ServerReader;
   template <class W>
   friend class ::grpc::ServerWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ServerReaderWriter;
   template <class ServiceType, class RequestType, class ResponseType>
   friend class RpcMethodHandler;
diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h
index 85f384d4773c87528ff440534ebcfd98cd0927af..abb3e5aa03d0e25aa27ba4e214dbbfab4cefba60 100644
--- a/include/grpc++/server_context.h
+++ b/include/grpc++/server_context.h
@@ -58,13 +58,13 @@ template <class W>
 class ServerAsyncWriter;
 template <class W>
 class ServerAsyncResponseWriter;
-template <class R, class W>
+template <class W, class R>
 class ServerAsyncReaderWriter;
 template <class R>
 class ServerReader;
 template <class W>
 class ServerWriter;
-template <class R, class W>
+template <class W, class R>
 class ServerReaderWriter;
 template <class ServiceType, class RequestType, class ResponseType>
 class RpcMethodHandler;
@@ -145,13 +145,13 @@ class ServerContext {
   friend class ::grpc::ServerAsyncWriter;
   template <class W>
   friend class ::grpc::ServerAsyncResponseWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ServerAsyncReaderWriter;
   template <class R>
   friend class ::grpc::ServerReader;
   template <class W>
   friend class ::grpc::ServerWriter;
-  template <class R, class W>
+  template <class W, class R>
   friend class ::grpc::ServerReaderWriter;
   template <class ServiceType, class RequestType, class ResponseType>
   friend class RpcMethodHandler;
diff --git a/src/core/security/base64.c b/src/core/security/base64.c
index e68359602e6d6e070ffaf0d49e29374b057012de..0c3645788eb772f2fe9eb4bccdb6276fc27c4462 100644
--- a/src/core/security/base64.c
+++ b/src/core/security/base64.c
@@ -33,6 +33,7 @@
 
 #include "src/core/security/base64.h"
 
+#include <stdint.h>
 #include <string.h>
 
 #include <grpc/support/alloc.h>
@@ -41,7 +42,7 @@
 
 /* --- Constants. --- */
 
-static const char base64_bytes[] = {
+static const int8_t base64_bytes[] = {
     -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
     -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
     -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,