diff --git a/src/core/lib/iomgr/combiner.h b/src/core/lib/iomgr/combiner.h
index 5f3e5f94b33f99a0ac4c603ef2129433db6e0554..fa9c143d3ca52c73070e997c3ba3d3677a76aa2e 100644
--- a/src/core/lib/iomgr/combiner.h
+++ b/src/core/lib/iomgr/combiner.h
@@ -55,7 +55,7 @@ void grpc_combiner_execute(grpc_exec_ctx *exec_ctx, grpc_combiner *lock,
                            grpc_closure *closure, grpc_error *error,
                            bool covered_by_poller);
 // Execute \a action within the lock just prior to unlocking.
-// if \a hint_async_break is true, the combiner is tries to hand execution to
+// if \a hint_async_break is true, the combiner tries to hand execution to
 // another thread before finishing the primary queue of combined closures and
 // executing the finally list.
 // Deprecation warning: \a hint_async_break will be removed in a future version
diff --git a/src/core/lib/support/mpscq.c b/src/core/lib/support/mpscq.c
index cdd6335f82b2f9dae5137e097809adceafe5bc40..5b9323275aa49825b7858e78167ab0180b89f512 100644
--- a/src/core/lib/support/mpscq.c
+++ b/src/core/lib/support/mpscq.c
@@ -50,7 +50,7 @@ void gpr_mpscq_push(gpr_mpscq *q, gpr_mpscq_node *n) {
   gpr_atm_no_barrier_store(&n->next, (gpr_atm)NULL);
   gpr_mpscq_node *prev =
       (gpr_mpscq_node *)gpr_atm_full_xchg(&q->head, (gpr_atm)n);
-  gpr_atm_no_barrier_store(&prev->next, (gpr_atm)n);
+  gpr_atm_rel_store(&prev->next, (gpr_atm)n);
 }
 
 gpr_mpscq_node *gpr_mpscq_pop(gpr_mpscq *q) {