diff --git a/quic/core/qpack/qpack_decoded_headers_accumulator.cc b/quic/core/qpack/qpack_decoded_headers_accumulator.cc
index ac60fce..bcfe0e4 100644
--- a/quic/core/qpack/qpack_decoded_headers_accumulator.cc
+++ b/quic/core/qpack/qpack_decoded_headers_accumulator.cc
@@ -10,11 +10,13 @@
 
 QpackDecodedHeadersAccumulator::QpackDecodedHeadersAccumulator(
     QuicStreamId id,
-    QpackDecoder* qpack_decoder)
+    QpackDecoder* qpack_decoder,
+    size_t max_header_list_size)
     : decoder_(qpack_decoder->DecodeHeaderBlock(id, this)),
       uncompressed_header_bytes_(0),
       compressed_header_bytes_(0),
       error_detected_(false) {
+  quic_header_list_.set_max_header_list_size(max_header_list_size);
   quic_header_list_.OnHeaderBlockStart();
 }
 
diff --git a/quic/core/qpack/qpack_decoded_headers_accumulator.h b/quic/core/qpack/qpack_decoded_headers_accumulator.h
index f9e8feb..5db88d7 100644
--- a/quic/core/qpack/qpack_decoded_headers_accumulator.h
+++ b/quic/core/qpack/qpack_decoded_headers_accumulator.h
@@ -24,7 +24,9 @@
 class QUIC_EXPORT_PRIVATE QpackDecodedHeadersAccumulator
     : public QpackProgressiveDecoder::HeadersHandlerInterface {
  public:
-  QpackDecodedHeadersAccumulator(QuicStreamId id, QpackDecoder* qpack_decoder);
+  QpackDecodedHeadersAccumulator(QuicStreamId id,
+                                 QpackDecoder* qpack_decoder,
+                                 size_t max_header_list_size);
   virtual ~QpackDecodedHeadersAccumulator() = default;
 
   // QpackProgressiveDecoder::HeadersHandlerInterface implementation.
diff --git a/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc b/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc
index eb6f622..c3c0b81 100644
--- a/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc
+++ b/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc
@@ -20,8 +20,12 @@
 namespace test {
 namespace {
 
+// Arbitrary stream ID used for testing.
 QuicStreamId kTestStreamId = 1;
 
+// Limit on header list size.
+const size_t kMaxHeaderListSize = 100;
+
 // Header Acknowledgement decoder stream instruction with stream_id = 1.
 const char* const kHeaderAcknowledgement = "\x81";
 
@@ -32,7 +36,7 @@
   QpackDecodedHeadersAccumulatorTest()
       : qpack_decoder_(&encoder_stream_error_delegate_,
                        &decoder_stream_sender_delegate_),
-        accumulator_(kTestStreamId, &qpack_decoder_) {}
+        accumulator_(kTestStreamId, &qpack_decoder_, kMaxHeaderListSize) {}
 
   NoopEncoderStreamErrorDelegate encoder_stream_error_delegate_;
   StrictMock<MockDecoderStreamSenderDelegate> decoder_stream_sender_delegate_;
@@ -93,5 +97,23 @@
   EXPECT_EQ(encoded_data.size(), header_list.compressed_header_bytes());
 }
 
+TEST_F(QpackDecodedHeadersAccumulatorTest, ExceedingLimit) {
+  EXPECT_CALL(decoder_stream_sender_delegate_,
+              WriteDecoderStreamData(Eq(kHeaderAcknowledgement)));
+
+  // Total length of header list exceeds kMaxHeaderListSize.
+  EXPECT_TRUE(accumulator_.Decode(QuicTextUtils::HexDecode(
+      "0000"                                      // header block prefix
+      "26666f6f626172"                            // header key: "foobar"
+      "7d61616161616161616161616161616161616161"  // header value: 'a' 125 times
+      "616161616161616161616161616161616161616161616161616161616161616161616161"
+      "616161616161616161616161616161616161616161616161616161616161616161616161"
+      "61616161616161616161616161616161616161616161616161616161616161616161")));
+  EXPECT_TRUE(accumulator_.EndHeaderBlock());
+
+  // QuicHeaderList signals header list over limit by clearing it.
+  EXPECT_TRUE(accumulator_.quic_header_list().empty());
+}
+
 }  // namespace test
 }  // namespace quic
