diff --git a/quic/core/http/quic_header_list.cc b/quic/core/http/quic_header_list.cc
index f9b730b..2aa4464 100644
--- a/quic/core/http/quic_header_list.cc
+++ b/quic/core/http/quic_header_list.cc
@@ -4,6 +4,7 @@
 
 #include "net/third_party/quiche/src/quic/core/http/quic_header_list.h"
 
+#include <limits>
 #include <string>
 
 #include "net/third_party/quiche/src/quic/core/quic_packets.h"
@@ -13,7 +14,7 @@
 namespace quic {
 
 QuicHeaderList::QuicHeaderList()
-    : max_header_list_size_(kDefaultMaxUncompressedHeaderSize),
+    : max_header_list_size_(std::numeric_limits<uint64_t>::max()),
       current_header_list_size_(0),
       uncompressed_header_bytes_(0),
       compressed_header_bytes_(0) {}
diff --git a/quic/core/http/quic_header_list_test.cc b/quic/core/http/quic_header_list_test.cc
index 67bd35f..5ff3c5a 100644
--- a/quic/core/http/quic_header_list_test.cc
+++ b/quic/core/http/quic_header_list_test.cc
@@ -37,9 +37,12 @@
 }
 
 TEST_F(QuicHeaderListTest, TooLarge) {
+  const size_t kMaxHeaderListSize = 256;
+
   QuicHeaderList headers;
+  headers.set_max_header_list_size(kMaxHeaderListSize);
   std::string key = "key";
-  std::string value(1 << 18, '1');
+  std::string value(kMaxHeaderListSize, '1');
   // Send a header that exceeds max_header_list_size.
   headers.OnHeader(key, value);
   // Send a second header exceeding max_header_list_size.
@@ -48,8 +51,8 @@
   EXPECT_LT(headers.DebugString().size(), 2 * value.size());
   size_t total_bytes = 2 * (key.size() + value.size()) + 1;
   headers.OnHeaderBlockEnd(total_bytes, total_bytes);
-  EXPECT_TRUE(headers.empty());
 
+  EXPECT_TRUE(headers.empty());
   EXPECT_EQ("{ }", headers.DebugString());
 }
 
diff --git a/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc b/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
index bb89737..2a2efc4 100644
--- a/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
+++ b/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
@@ -534,8 +534,6 @@
 // Splits |*header_list| header values along '\0' or ';' separators.
 QuicHeaderList SplitHeaderList(const spdy::SpdyHeaderBlock& header_list) {
   QuicHeaderList split_header_list;
-  split_header_list.set_max_header_list_size(
-      std::numeric_limits<size_t>::max());
   split_header_list.OnHeaderBlockStart();
 
   size_t total_size = 0;
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h
index 544d1fb..27ffee3 100644
--- a/quic/test_tools/quic_test_utils.h
+++ b/quic/test_tools/quic_test_utils.h
@@ -1190,8 +1190,6 @@
 template <typename T>
 QuicHeaderList AsHeaderList(const T& container) {
   QuicHeaderList l;
-  // No need to enforce header list size limits again in this handler.
-  l.set_max_header_list_size(UINT_MAX);
   l.OnHeaderBlockStart();
   size_t total_size = 0;
   for (auto p : container) {
