diff --git a/quic/core/congestion_control/bbr2_misc.h b/quic/core/congestion_control/bbr2_misc.h
index 0d852e9..1109e08 100644
--- a/quic/core/congestion_control/bbr2_misc.h
+++ b/quic/core/congestion_control/bbr2_misc.h
@@ -184,9 +184,6 @@
   // Can be enabled by connection option 'B2LO'.
   bool ignore_inflight_lo = false;
 
-  // Can be enabled by connection optoin 'B2HI'.
-  bool limit_inflight_hi_by_cwnd = false;
-
   // Can be enabled by connection option 'B2H2'.
   bool limit_inflight_hi_by_max_delivered = false;
 
diff --git a/quic/core/congestion_control/bbr2_probe_bw.cc b/quic/core/congestion_control/bbr2_probe_bw.cc
index aa7c6ef..0b8991c 100644
--- a/quic/core/congestion_control/bbr2_probe_bw.cc
+++ b/quic/core/congestion_control/bbr2_probe_bw.cc
@@ -234,17 +234,6 @@
                         << model_->max_bytes_delivered_in_round() << "  @ "
                         << congestion_event.event_time;
           model_->set_inflight_hi(new_inflight_hi);
-        } else if (Params().limit_inflight_hi_by_cwnd) {
-          const QuicByteCount cwnd_target =
-              sender_->GetCongestionWindow() * (1.0 - Params().beta);
-          if (inflight_at_send >= cwnd_target) {
-            // The new code does not change behavior.
-            QUIC_CODE_COUNT(quic_bbr2_cut_inflight_hi_cwnd_noop);
-          } else {
-            // The new code actually cuts inflight_hi slower than before.
-            QUIC_CODE_COUNT(quic_bbr2_cut_inflight_hi_cwnd_in_effect);
-          }
-          model_->set_inflight_hi(std::max(inflight_at_send, cwnd_target));
         } else {
           model_->set_inflight_hi(std::max(inflight_at_send, inflight_target));
         }
diff --git a/quic/core/congestion_control/bbr2_sender.cc b/quic/core/congestion_control/bbr2_sender.cc
index e4a4f78..c3abffe 100644
--- a/quic/core/congestion_control/bbr2_sender.cc
+++ b/quic/core/congestion_control/bbr2_sender.cc
@@ -123,11 +123,6 @@
   if (config.HasClientRequestedIndependentOption(kB2LO, perspective)) {
     params_.ignore_inflight_lo = true;
   }
-  if (GetQuicReloadableFlag(quic_bbr2_limit_inflight_hi) &&
-      config.HasClientRequestedIndependentOption(kB2HI, perspective)) {
-    QUIC_RELOADABLE_FLAG_COUNT(quic_bbr2_limit_inflight_hi);
-    params_.limit_inflight_hi_by_cwnd = true;
-  }
   if (GetQuicReloadableFlag(quic_bbr2_use_tcp_inflight_hi_headroom) &&
       config.HasClientRequestedIndependentOption(kB2HR, perspective)) {
     QUIC_RELOADABLE_FLAG_COUNT(quic_bbr2_use_tcp_inflight_hi_headroom);
diff --git a/quic/core/crypto/crypto_protocol.h b/quic/core/crypto/crypto_protocol.h
index cd1bc3a..a1d8028 100644
--- a/quic/core/crypto/crypto_protocol.h
+++ b/quic/core/crypto/crypto_protocol.h
@@ -28,7 +28,7 @@
 
 // The following tags have been deprecated and should not be reused:
 // "1CON", "BBQ4", "NCON", "RCID", "SREJ", "TBKP", "TB10", "SCLS", "SMHL",
-// "QNZR"
+// "QNZR", "B2HI"
 
 // clang-format off
 const QuicTag kCHLO = TAG('C', 'H', 'L', 'O');   // Client hello
@@ -128,8 +128,6 @@
                                                  // cwnd to be below BDP + ack
                                                  // height.
 const QuicTag kB2LO = TAG('B', '2', 'L', 'O');   // Ignore inflight_lo in BBR2
-const QuicTag kB2HI = TAG('B', '2', 'H', 'I');   // Limit inflight_hi reduction
-                                                 // based on CWND.
 const QuicTag kB2HR = TAG('B', '2', 'H', 'R');   // 15% inflight_hi headroom.
 const QuicTag kB2SL = TAG('B', '2', 'S', 'L');   // When exiting STARTUP due to
                                                  // loss, set inflight_hi to the
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index e879703..7c5f7b8 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -10,7 +10,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_avoid_too_low_probe_bw_cwnd, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_fewer_startup_round_trips, false)
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_limit_inflight_hi, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_no_exit_startup_on_loss_with_bw_growth, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_startup_loss_exit_use_max_delivered, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_bbr2_support_max_bootstrap_cwnd, true)
