diff --git a/quic/test_tools/crypto_test_utils.cc b/quic/test_tools/crypto_test_utils.cc
index 17947f8..ce1c217 100644
--- a/quic/test_tools/crypto_test_utils.cc
+++ b/quic/test_tools/crypto_test_utils.cc
@@ -400,17 +400,21 @@
                                            PacketSavingConnection* server_conn,
                                            QuicCryptoStream* server,
                                            size_t server_i) {
-  QUIC_LOG(INFO) << "Processing "
-                 << client_conn->encrypted_packets_.size() - client_i
-                 << " packets client->server";
-  MovePackets(client_conn, &client_i, server, server_conn,
-              Perspective::IS_SERVER);
+  if (client_conn->encrypted_packets_.size() != client_i) {
+    QUIC_LOG(INFO) << "Processing "
+                   << client_conn->encrypted_packets_.size() - client_i
+                   << " packets client->server";
+    MovePackets(client_conn, &client_i, server, server_conn,
+                Perspective::IS_SERVER);
+  }
 
-  QUIC_LOG(INFO) << "Processing "
-                 << server_conn->encrypted_packets_.size() - server_i
-                 << " packets server->client";
-  MovePackets(server_conn, &server_i, client, client_conn,
-              Perspective::IS_CLIENT);
+  if (server_conn->encrypted_packets_.size() != server_i) {
+    QUIC_LOG(INFO) << "Processing "
+                   << server_conn->encrypted_packets_.size() - server_i
+                   << " packets server->client";
+    MovePackets(server_conn, &server_i, client, client_conn,
+                Perspective::IS_CLIENT);
+  }
 
   return std::make_pair(client_i, server_i);
 }
@@ -795,6 +799,9 @@
     for (const auto& crypto_frame : framer.crypto_frames()) {
       dest_stream->OnCryptoFrame(*crypto_frame);
     }
+    if (!framer.connection_close_frames().empty() && dest_conn->connected()) {
+      dest_conn->OnConnectionCloseFrame(framer.connection_close_frames()[0]);
+    }
   }
   *inout_packet_index = index;
 
