diff -Naur grpc-c_orig/lib/client.c grpc-c/lib/client.c
--- grpc-c_orig/lib/client.c	2017-06-26 01:14:17.000000000 -0700
+++ grpc-c/lib/client.c	2017-10-01 15:04:38.028008999 -0700
@@ -239,7 +239,7 @@
     if (grpc_c_ops_alloc(context, 1)) return 1;
 
     context->gcc_ops[op_count].op = GRPC_OP_RECV_MESSAGE;
-    context->gcc_ops[op_count].data.recv_message = &context->gcc_payload;
+    context->gcc_ops[op_count].data.recv_message.recv_message = &context->gcc_payload;
     context->gcc_op_count++;
 
     grpc_call_error e = grpc_call_start_batch(context->gcc_call, 
@@ -752,7 +752,7 @@
     input_packer(input, &context->gcc_ops_payload[op_count]);
 
     context->gcc_ops[op_count].op = GRPC_OP_SEND_MESSAGE;
-    context->gcc_ops[op_count].data.send_message 
+    context->gcc_ops[op_count].data.send_message.send_message 
 	= context->gcc_ops_payload[op_count];
     op_count++;
 
@@ -760,12 +760,12 @@
     op_count++;
 
     context->gcc_ops[op_count].op = GRPC_OP_RECV_INITIAL_METADATA;
-    context->gcc_ops[op_count].data.recv_initial_metadata 
+    context->gcc_ops[op_count].data.recv_initial_metadata.recv_initial_metadata 
 	= context->gcc_initial_metadata;
     op_count++;
 
     context->gcc_ops[op_count].op = GRPC_OP_RECV_MESSAGE;
-    context->gcc_ops[op_count].data.recv_message = &context->gcc_payload;
+    context->gcc_ops[op_count].data.recv_message.recv_message = &context->gcc_payload;
     op_count++;
 
     /*
diff -Naur grpc-c_orig/lib/service.c grpc-c/lib/service.c
--- grpc-c_orig/lib/service.c	2017-06-26 01:14:17.000000000 -0700
+++ grpc-c/lib/service.c	2017-10-01 14:54:11.676008999 -0700
@@ -169,7 +169,7 @@
 	 */
 	if (context->gcc_read_event->gce_refcount == 0) {
 	    context->gcc_ops[op_count].op = GRPC_OP_RECV_MESSAGE;
-	    context->gcc_ops[op_count].data.recv_message 
+	    context->gcc_ops[op_count].data.recv_message.recv_message
 		= &context->gcc_payload;
 
 	    context->gcc_read_event->gce_type = GRPC_C_EVENT_READ;
@@ -343,7 +343,7 @@
 	.gcmf_output_packer(output, &context->gcc_ops_payload[op_count]);
 
     context->gcc_ops[context->gcc_op_count].op = GRPC_OP_SEND_MESSAGE;
-    context->gcc_ops[context->gcc_op_count].data.send_message 
+    context->gcc_ops[context->gcc_op_count].data.send_message.send_message
 	= context->gcc_ops_payload[op_count];
 
     context->gcc_op_count++;
