diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc
index e4e7e73762df025235077ed80111b3f50ec5863e..590d56d8d00d7012b76ca429190f8ab44b11e42b 100644
--- a/test/cpp/qps/client_async.cc
+++ b/test/cpp/qps/client_async.cc
@@ -281,16 +281,17 @@ class AsyncStreamingClient GRPC_FINAL : public Client {
 
     int t = 0;
     for (int i = 0; i < config.outstanding_rpcs_per_channel(); i++) {
-      for (auto &channel : channels_) {
-        auto *cq = cli_cqs_[t].get();
+      for (auto channel = channels_.begin(); channel != channels_.end();
+           channel++) {
+        auto* cq = cli_cqs_[t].get();
         t = (t + 1) % cli_cqs_.size();
         auto start_req = [cq](TestService::Stub *stub, grpc::ClientContext *ctx,
                               void *tag) {
           auto stream = stub->AsyncStreamingCall(ctx, cq, tag);
-	  return stream;
+          return stream;
         };
 
-        TestService::Stub *stub = channel.get_stub();
+        TestService::Stub *stub = channel->get_stub();
         const SimpleRequest &request = request_;
         new ClientRpcContextStreamingImpl<SimpleRequest, SimpleResponse>(
             stub, request, start_req, check_done);
@@ -303,11 +304,11 @@ class AsyncStreamingClient GRPC_FINAL : public Client {
   ~AsyncStreamingClient() GRPC_OVERRIDE {
     EndThreads();
 
-    for (auto &cq : cli_cqs_) {
-      cq->Shutdown();
+    for (auto cq = cli_cqs_.begin(); cq != cli_cqs_.end(); cq++) {
+      (*cq)->Shutdown();
       void *got_tag;
       bool ok;
-      while (cq->Next(&got_tag, &ok)) {
+      while ((*cq)->Next(&got_tag, &ok)) {
         delete ClientRpcContext::detag(got_tag);
       }
     }