diff --git a/quic/test_tools/quic_connection_peer.cc b/quic/test_tools/quic_connection_peer.cc
index 89e9466..ab62c23 100644
--- a/quic/test_tools/quic_connection_peer.cc
+++ b/quic/test_tools/quic_connection_peer.cc
@@ -244,18 +244,13 @@
 // static
 void QuicConnectionPeer::SetAckMode(QuicConnection* connection,
                                     AckMode ack_mode) {
-  if (connection->received_packet_manager_.decide_when_to_send_acks()) {
-    if (connection->use_uber_received_packet_manager_) {
-      for (auto& received_packet_manager :
-           connection->uber_received_packet_manager_
-               .received_packet_managers_) {
-        received_packet_manager.ack_mode_ = ack_mode;
-      }
-    } else {
-      connection->received_packet_manager_.ack_mode_ = ack_mode;
+  if (connection->use_uber_received_packet_manager_) {
+    for (auto& received_packet_manager :
+         connection->uber_received_packet_manager_.received_packet_managers_) {
+      received_packet_manager.ack_mode_ = ack_mode;
     }
   } else {
-    connection->ack_mode_ = ack_mode;
+    connection->received_packet_manager_.ack_mode_ = ack_mode;
   }
 }
 
@@ -263,39 +258,29 @@
 void QuicConnectionPeer::SetFastAckAfterQuiescence(
     QuicConnection* connection,
     bool fast_ack_after_quiescence) {
-  if (connection->received_packet_manager_.decide_when_to_send_acks()) {
-    if (connection->use_uber_received_packet_manager_) {
-      for (auto& received_packet_manager :
-           connection->uber_received_packet_manager_
-               .received_packet_managers_) {
-        received_packet_manager.fast_ack_after_quiescence_ =
-            fast_ack_after_quiescence;
-      }
-    } else {
-      connection->received_packet_manager_.fast_ack_after_quiescence_ =
+  if (connection->use_uber_received_packet_manager_) {
+    for (auto& received_packet_manager :
+         connection->uber_received_packet_manager_.received_packet_managers_) {
+      received_packet_manager.fast_ack_after_quiescence_ =
           fast_ack_after_quiescence;
     }
   } else {
-    connection->fast_ack_after_quiescence_ = fast_ack_after_quiescence;
+    connection->received_packet_manager_.fast_ack_after_quiescence_ =
+        fast_ack_after_quiescence;
   }
 }
 
 // static
 void QuicConnectionPeer::SetAckDecimationDelay(QuicConnection* connection,
                                                float ack_decimation_delay) {
-  if (connection->received_packet_manager_.decide_when_to_send_acks()) {
-    if (connection->use_uber_received_packet_manager_) {
-      for (auto& received_packet_manager :
-           connection->uber_received_packet_manager_
-               .received_packet_managers_) {
-        received_packet_manager.ack_decimation_delay_ = ack_decimation_delay;
-      }
-    } else {
-      connection->received_packet_manager_.ack_decimation_delay_ =
-          ack_decimation_delay;
+  if (connection->use_uber_received_packet_manager_) {
+    for (auto& received_packet_manager :
+         connection->uber_received_packet_manager_.received_packet_managers_) {
+      received_packet_manager.ack_decimation_delay_ = ack_decimation_delay;
     }
   } else {
-    connection->ack_decimation_delay_ = ack_decimation_delay;
+    connection->received_packet_manager_.ack_decimation_delay_ =
+        ack_decimation_delay;
   }
 }
 
