diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h
index efeb2dd..48bd038 100755
--- a/quiche/common/quiche_feature_flags_list.h
+++ b/quiche/common/quiche_feature_flags_list.h
@@ -55,7 +55,7 @@
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_alarm_multiplexer, false, false, "Manages all of the connection alarms via QuicAlarmMultiplexer.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_received_client_addresses_cache, true, true, "If true, use a LRU cache to record client addresses of packets received on server's original address.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_support_ect1, false, false, "When true, allows sending of QUIC packets marked ECT(1). A different flag (TBD) will actually utilize this capability to send ECT(1).")
-QUICHE_FLAG(bool, quiche_restart_flag_quic_support_flow_label, false, false, "If true, QUIC will support reading and writing IPv6 flow labels.")
+QUICHE_FLAG(bool, quiche_restart_flag_quic_support_flow_label2, false, false, "If true, QUIC will support reading and writing IPv6 flow labels.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_support_release_time_for_gso, false, false, "If true, QuicGsoBatchWriter will support release time if it is available and the process has the permission to do so.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_testonly_default_false, false, false, "A testonly restart flag that will always default to false.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_testonly_default_true, true, true, "A testonly restart flag that will always default to true.")
diff --git a/quiche/quic/core/http/end_to_end_test.cc b/quiche/quic/core/http/end_to_end_test.cc
index cb49bcb..4f3bfd6 100644
--- a/quiche/quic/core/http/end_to_end_test.cc
+++ b/quiche/quic/core/http/end_to_end_test.cc
@@ -7738,7 +7738,7 @@
 }
 
 TEST_P(EndToEndTest, FlowLabelSend) {
-  SetQuicRestartFlag(quic_support_flow_label, true);
+  SetQuicRestartFlag(quic_support_flow_label2, true);
   ASSERT_TRUE(Initialize());
 
   const uint32_t server_flow_label = 2;
diff --git a/quiche/quic/core/quic_default_packet_writer.cc b/quiche/quic/core/quic_default_packet_writer.cc
index 9545f4d..1c2e564 100644
--- a/quiche/quic/core/quic_default_packet_writer.cc
+++ b/quiche/quic/core/quic_default_packet_writer.cc
@@ -24,8 +24,8 @@
   packet_info.SetPeerAddress(peer_address);
   packet_info.SetSelfIp(self_address);
   packet_info.SetEcnCodepoint(params.ecn_codepoint);
-  if (GetQuicRestartFlag(quic_support_flow_label)) {
-    QUIC_RESTART_FLAG_COUNT_N(quic_support_flow_label, 3, 5);
+  if (GetQuicRestartFlag(quic_support_flow_label2)) {
+    QUIC_RESTART_FLAG_COUNT_N(quic_support_flow_label2, 3, 6);
     packet_info.SetFlowLabel(params.flow_label);
   }
   WriteResult result =
diff --git a/quiche/quic/core/quic_packet_reader.cc b/quiche/quic/core/quic_packet_reader.cc
index 5aa3940..4b4190c 100644
--- a/quiche/quic/core/quic_packet_reader.cc
+++ b/quiche/quic/core/quic_packet_reader.cc
@@ -55,8 +55,8 @@
        QuicUdpPacketInfoBit::V6_SELF_IP, QuicUdpPacketInfoBit::RECV_TIMESTAMP,
        QuicUdpPacketInfoBit::TTL, QuicUdpPacketInfoBit::GOOGLE_PACKET_HEADER,
        QuicUdpPacketInfoBit::ECN});
-  if (GetQuicRestartFlag(quic_support_flow_label)) {
-    QUIC_RESTART_FLAG_COUNT_N(quic_support_flow_label, 4, 5);
+  if (GetQuicRestartFlag(quic_support_flow_label2)) {
+    QUIC_RESTART_FLAG_COUNT_N(quic_support_flow_label2, 4, 6);
     info_bits.Set(QuicUdpPacketInfoBit::V6_FLOW_LABEL);
   }
   size_t packets_read =
diff --git a/quiche/quic/core/quic_udp_socket_posix.inc b/quiche/quic/core/quic_udp_socket_posix.inc
index eb7413d..1b44203 100644
--- a/quiche/quic/core/quic_udp_socket_posix.inc
+++ b/quiche/quic/core/quic_udp_socket_posix.inc
@@ -236,8 +236,8 @@
       return false;
     }
 #if defined(__linux__)
-    if (GetQuicRestartFlag(quic_support_flow_label)) {
-      QUIC_RESTART_FLAG_COUNT_N(quic_support_flow_label, 5, 5);
+    if (GetQuicRestartFlag(quic_support_flow_label2)) {
+      QUIC_RESTART_FLAG_COUNT_N(quic_support_flow_label2, 5, 6);
       if (setsockopt(fd, SOL_IPV6, IPV6_FLOWINFO, &set, sizeof(set)) != 0) {
         QUIC_LOG_FIRST_N(ERROR, 100)
             << "Failed to request to receive flow label on "
diff --git a/quiche/quic/core/quic_udp_socket_test.cc b/quiche/quic/core/quic_udp_socket_test.cc
index 1c00dc7..f47434d 100644
--- a/quiche/quic/core/quic_udp_socket_test.cc
+++ b/quiche/quic/core/quic_udp_socket_test.cc
@@ -28,7 +28,7 @@
 };
 
 TEST_F(QuicUdpSocketTest, Basic) {
-  SetQuicRestartFlag(quic_support_flow_label, true);
+  SetQuicRestartFlag(quic_support_flow_label2, true);
   const QuicSocketAddress any_address(quiche::QuicheIpAddress::Any6(), 0);
   QuicUdpSocketApi socket_api;
 
@@ -81,7 +81,7 @@
 }
 
 TEST_F(QuicUdpSocketTest, FlowLabel) {
-  SetQuicRestartFlag(quic_support_flow_label, true);
+  SetQuicRestartFlag(quic_support_flow_label2, true);
   const QuicSocketAddress any_address(quiche::QuicheIpAddress::Any6(), 0);
   QuicUdpSocketApi socket_api;
 
