diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index 0d9f9a4..ea2876d 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -75,8 +75,6 @@
 QUIC_FLAG(quic_reloadable_flag_quic_new_error_code_when_packets_buffered_too_long, true)
 // If true, do not return from QuicSpdyClientStream::OnBodyAvailable() if visitor is nullptr.
 QUIC_FLAG(quic_reloadable_flag_quic_skip_return_on_null_visitor, true)
-// If true, do not send MAX_STREAM frames if there are already 2 outstanding.
-QUIC_FLAG(quic_reloadable_flag_quic_limit_sending_max_streams2, true)
 // If true, enable server retransmittable on wire PING.
 QUIC_FLAG(quic_reloadable_flag_quic_enable_server_on_wire_ping, true)
 // If true, fix a QUIC BBR2 bytes counting issue caused by spurious losses.
diff --git a/quiche/quic/core/quic_session.cc b/quiche/quic/core/quic_session.cc
index 48977c2..207b0e7 100644
--- a/quiche/quic/core/quic_session.cc
+++ b/quiche/quic/core/quic_session.cc
@@ -130,8 +130,6 @@
       is_configured_(false),
       was_zero_rtt_rejected_(false),
       liveness_testing_in_progress_(false),
-      limit_sending_max_streams_(
-          GetQuicReloadableFlag(quic_limit_sending_max_streams2)),
       stream_count_reset_alarm_(
           absl::WrapUnique<QuicAlarm>(connection->alarm_factory()->CreateAlarm(
               new StreamCountResetAlarmDelegate(this)))) {
@@ -927,9 +925,7 @@
   if (GetQuicRestartFlag(quic_allow_control_frames_while_procesing)) {
     QUIC_RESTART_FLAG_COUNT_N(quic_allow_control_frames_while_procesing, 1, 3);
   } else {
-    if (limit_sending_max_streams_ &&
-        connection_->framer().is_processing_packet()) {
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_limit_sending_max_streams2, 3, 3);
+    if (connection_->framer().is_processing_packet()) {
       // The frame will be sent when OnCanWrite() is called.
       return false;
     }
@@ -1035,10 +1031,6 @@
 }
 
 bool QuicSession::CanSendMaxStreams() {
-  if (!limit_sending_max_streams_) {
-    return true;
-  }
-  QUIC_RELOADABLE_FLAG_COUNT_N(quic_limit_sending_max_streams2, 1, 3);
   return control_frame_manager_.NumBufferedMaxStreams() < 2;
 }
 
@@ -2348,12 +2340,10 @@
   }
   if (frame.type != STREAM_FRAME) {
     bool acked = control_frame_manager_.OnControlFrameAcked(frame);
-    if (limit_sending_max_streams_ && acked &&
-        frame.type == MAX_STREAMS_FRAME) {
+    if (acked && frame.type == MAX_STREAMS_FRAME) {
       // Since there is a 2 frame limit on the number of outstanding max_streams
       // frames, when an outstanding max_streams frame is ack'd that frees up
       // room to potntially send another.
-      QUIC_RELOADABLE_FLAG_COUNT_N(quic_limit_sending_max_streams2, 2, 3);
       ietf_streamid_manager_.MaybeSendMaxStreamsFrame();
     }
     return acked;
diff --git a/quiche/quic/core/quic_session.h b/quiche/quic/core/quic_session.h
index ab7ba05..a4a5cfb 100644
--- a/quiche/quic/core/quic_session.h
+++ b/quiche/quic/core/quic_session.h
@@ -1078,10 +1078,6 @@
   // creation of new outgoing bidirectional streams.
   bool liveness_testing_in_progress_;
 
-  // If true, then do not send MAX_STREAM frames if there are already two
-  // outstanding. Latched value of flag quic_limit_sending_max_streams.
-  bool limit_sending_max_streams_;
-
   // The counter for newly created non-static incoming streams in the current
   // event loop and gets reset for each event loop.
   QuicStreamCount new_incoming_streams_in_current_loop_ = 0u;
diff --git a/quiche/quic/core/quic_session_test.cc b/quiche/quic/core/quic_session_test.cc
index 3042d23..8950bc1 100644
--- a/quiche/quic/core/quic_session_test.cc
+++ b/quiche/quic/core/quic_session_test.cc
@@ -1284,8 +1284,7 @@
 }
 
 TEST_P(QuicSessionTestServer, LimitMaxStreams) {
-  if (!VersionHasIetfQuicFrames(transport_version()) ||
-      !GetQuicReloadableFlag(quic_limit_sending_max_streams2)) {
+  if (!VersionHasIetfQuicFrames(transport_version())) {
     return;
   }
   CompleteHandshake();
