diff --git a/src/core/surface/call.c b/src/core/surface/call.c
index 50df36cae9fe1262de46540e20dc110fd7fd0dfd..e43634384a56e8e51120285066982dc4edd5439a 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -597,6 +597,7 @@ static void call_on_done_send(void *pc, int success) {
     finish_ioreq_op(call, GRPC_IOREQ_SEND_STATUS, success);
     finish_ioreq_op(call, GRPC_IOREQ_SEND_CLOSE, 1);
   }
+  call->send_ops.nops = 0;
   call->last_send_contains = 0;
   call->sending = 0;
   unlock(call);
diff --git a/src/ruby/core b/src/ruby/core
new file mode 100644
index 0000000000000000000000000000000000000000..6fac943e327cd913dfc95ffb34084faecf896dd7
Binary files /dev/null and b/src/ruby/core differ