diff --git a/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc b/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
index 4e4ebc4..6c3e351 100644
--- a/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
+++ b/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
@@ -15,8 +15,8 @@
 #include "quic/core/qpack/qpack_encoder.h"
 #include "quic/core/qpack/qpack_stream_sender_delegate.h"
 #include "quic/core/qpack/value_splitting_header_list.h"
+#include "quic/core/quic_circular_deque.h"
 #include "quic/core/quic_error_codes.h"
-#include "quic/platform/api/quic_containers.h"
 #include "quic/platform/api/quic_fuzzed_data_provider.h"
 #include "quic/test_tools/qpack/qpack_decoder_test_utils.h"
 #include "quic/test_tools/qpack/qpack_encoder_peer.h"
@@ -413,7 +413,7 @@
 
   // QpackStreamSenderDelegate implementation.
   void WriteStreamData(absl::string_view data) override {
-    stream_data.push(std::string(data.data(), data.size()));
+    stream_data.push_back(std::string(data.data(), data.size()));
   }
 
   // Release some (possibly none) delayed stream data.
@@ -421,7 +421,7 @@
     auto count = provider_->ConsumeIntegral<uint8_t>();
     while (!stream_data.empty() && count > 0) {
       receiver_->Decode(stream_data.front());
-      stream_data.pop();
+      stream_data.pop_front();
       --count;
     }
   }
@@ -430,14 +430,14 @@
   void Flush() {
     while (!stream_data.empty()) {
       receiver_->Decode(stream_data.front());
-      stream_data.pop();
+      stream_data.pop_front();
     }
   }
 
  private:
   QpackStreamReceiver* const receiver_;
   QuicFuzzedDataProvider* const provider_;
-  QuicQueue<std::string> stream_data;
+  QuicCircularDeque<std::string> stream_data;
 };
 
 // Generate header list using fuzzer data.
diff --git a/quic/test_tools/simulator/queue.cc b/quic/test_tools/simulator/queue.cc
index 5113cf7..c286bf6 100644
--- a/quic/test_tools/simulator/queue.cc
+++ b/quic/test_tools/simulator/queue.cc
@@ -43,7 +43,7 @@
   }
 
   bytes_queued_ += packet->size;
-  queue_.emplace(std::move(packet), current_bundle_);
+  queue_.emplace_back(std::move(packet), current_bundle_);
 
   if (IsAggregationEnabled()) {
     current_bundle_bytes_ += queue_.front().packet->size;
@@ -65,7 +65,7 @@
     bytes_queued_ -= queue_.front().packet->size;
 
     tx_port_->AcceptPacket(std::move(queue_.front().packet));
-    queue_.pop();
+    queue_.pop_front();
     if (listener_ != nullptr) {
       listener_->OnPacketDequeued();
     }
diff --git a/quic/test_tools/simulator/queue.h b/quic/test_tools/simulator/queue.h
index a291f48..943b8b0 100644
--- a/quic/test_tools/simulator/queue.h
+++ b/quic/test_tools/simulator/queue.h
@@ -6,6 +6,7 @@
 #define QUICHE_QUIC_TEST_TOOLS_SIMULATOR_QUEUE_H_
 
 #include "quic/core/quic_alarm.h"
+#include "quic/core/quic_circular_deque.h"
 #include "quic/test_tools/simulator/link.h"
 
 namespace quic {
@@ -109,7 +110,7 @@
   std::unique_ptr<QuicAlarm> aggregation_timeout_alarm_;
 
   ConstrainedPortInterface* tx_port_;
-  QuicQueue<EnqueuedPacket> queue_;
+  QuicCircularDeque<EnqueuedPacket> queue_;
 
   ListenerInterface* listener_;
 };
