diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c
index c5b7161..15b3c86 100644
--- a/test/core/end2end/tests/max_concurrent_streams.c
+++ b/test/core/end2end/tests/max_concurrent_streams.c
@@ -210,6 +210,8 @@
   grpc_op ops[6];
   grpc_op *op;
   int was_cancelled;
+  int got_client_start;
+  int got_server_start;
 
   server_arg.key = GRPC_ARG_MAX_CONCURRENT_STREAMS;
   server_arg.type = GRPC_ARG_INTEGER;
@@ -236,7 +238,7 @@
 
   /* start two requests - ensuring that the second is not accepted until
      the first completes */
-  deadline = n_seconds_time(10);
+  deadline = n_seconds_time(1000);
   c1 = grpc_channel_create_call(f.client, f.cq, "/alpha",
                                 "foo.test.google.fr:1234", deadline);
   GPR_ASSERT(c1);
@@ -293,20 +295,28 @@
   GPR_ASSERT(GRPC_CALL_OK ==
              grpc_call_start_batch(c2, ops, op - ops, tag(402)));
 
-  cq_expect_completion(cqv, tag(101), GRPC_OP_OK);
-  cq_verify(cqv);
-
-  ev = grpc_completion_queue_next(f.cq,
-                                  GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3));
-  GPR_ASSERT(ev);
-  GPR_ASSERT(ev->type == GRPC_OP_COMPLETE);
-  GPR_ASSERT(ev->data.op_complete == GRPC_OP_OK);
-  GPR_ASSERT(ev->tag == tag(301) || ev->tag == tag(401));
-  /* The /alpha or /beta calls started above could be invoked (but NOT both);
-   * check this here */
-  /* We'll get tag 303 or 403, we want 300, 400 */
-  live_call = ((int)(gpr_intptr)ev->tag) - 1;
-  grpc_event_finish(ev);
+  got_client_start = 0;
+  got_server_start = 0;
+  while (!got_client_start || !got_server_start) {
+    ev = grpc_completion_queue_next(f.cq,
+                                    GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3));
+    GPR_ASSERT(ev);
+    GPR_ASSERT(ev->type == GRPC_OP_COMPLETE);
+    GPR_ASSERT(ev->data.op_complete == GRPC_OP_OK);
+    if (ev->tag == tag(101)) {
+      GPR_ASSERT(!got_server_start);
+      got_server_start = 1;
+    } else {
+      GPR_ASSERT(!got_client_start);
+      GPR_ASSERT(ev->tag == tag(301) || ev->tag == tag(401));
+      /* The /alpha or /beta calls started above could be invoked (but NOT both);
+       * check this here */
+      /* We'll get tag 303 or 403, we want 300, 400 */
+      live_call = ((int)(gpr_intptr)ev->tag) - 1;
+      got_client_start = 1;
+    }
+    grpc_event_finish(ev);
+  }
 
   op = ops;
   op->op = GRPC_OP_SEND_INITIAL_METADATA;
