diff --git a/quic/core/qpack/offline/qpack_offline_decoder.cc b/quic/core/qpack/offline/qpack_offline_decoder.cc
index c958725..cf62090 100644
--- a/quic/core/qpack/offline/qpack_offline_decoder.cc
+++ b/quic/core/qpack/offline/qpack_offline_decoder.cc
@@ -19,7 +19,7 @@
 namespace quic {
 
 QpackOfflineDecoder::QpackOfflineDecoder()
-    : encoder_stream_error_detected_(false), max_blocked_streams_(0) {}
+    : encoder_stream_error_detected_(false) {}
 
 bool QpackOfflineDecoder::DecodeAndVerifyOfflineData(
     QuicStringPiece input_filename,
@@ -75,7 +75,8 @@
   ++piece_it;
 
   // Maximum allowed number of blocked streams.
-  if (!QuicTextUtils::StringToUint64(*piece_it, &max_blocked_streams_)) {
+  uint64_t max_blocked_streams = 0;
+  if (!QuicTextUtils::StringToUint64(*piece_it, &max_blocked_streams)) {
     QUIC_LOG(ERROR) << "Error parsing part of input filename \"" << *piece_it
                     << "\" as an integer.";
     return false;
@@ -92,7 +93,7 @@
     return false;
   }
   qpack_decoder_ = std::make_unique<QpackDecoder>(
-      maximum_dynamic_table_capacity, max_blocked_streams_, this);
+      maximum_dynamic_table_capacity, max_blocked_streams, this);
   qpack_decoder_->set_qpack_stream_sender_delegate(
       &decoder_stream_sender_delegate_);
 
@@ -181,22 +182,6 @@
           decoder->headers_handler->ReleaseHeaderList());
       decoders_.pop_front();
     }
-
-    // Enforce limit on blocked streams.
-    // TODO(b/112770235): Move this logic to QpackDecoder.
-    uint64_t blocked_streams_count = 0;
-    for (const auto& decoder : decoders_) {
-      if (!decoder.headers_handler->decoding_completed()) {
-        ++blocked_streams_count;
-      }
-    }
-
-    if (blocked_streams_count > max_blocked_streams_) {
-      QUIC_LOG(ERROR) << "Too many blocked streams: limit is "
-                      << max_blocked_streams_ << ", actual count is "
-                      << blocked_streams_count;
-      return false;
-    }
   }
 
   if (!decoders_.empty()) {
diff --git a/quic/core/qpack/offline/qpack_offline_decoder.h b/quic/core/qpack/offline/qpack_offline_decoder.h
index dcb8894..c12c491 100644
--- a/quic/core/qpack/offline/qpack_offline_decoder.h
+++ b/quic/core/qpack/offline/qpack_offline_decoder.h
@@ -73,7 +73,6 @@
   bool encoder_stream_error_detected_;
   NoopQpackStreamSenderDelegate decoder_stream_sender_delegate_;
   std::unique_ptr<QpackDecoder> qpack_decoder_;
-  uint64_t max_blocked_streams_;
 
   // Objects necessary for decoding, one list element for each header block.
   std::list<Decoder> decoders_;
