diff --git a/quiche/quic/core/crypto/crypto_protocol.h b/quiche/quic/core/crypto/crypto_protocol.h
index e9a2785..7dbbb6d 100644
--- a/quiche/quic/core/crypto/crypto_protocol.h
+++ b/quiche/quic/core/crypto/crypto_protocol.h
@@ -276,7 +276,7 @@
 const QuicTag kELDT = TAG('E', 'L', 'D', 'T');   // Enable Loss Detection Tuning
 
 // TODO(haoyuewang) Remove RVCM option once
-// --quic_remove_connection_migration_connection_option is deprecated.
+// --quic_remove_connection_migration_connection_option_v2 is deprecated.
 const QuicTag kRVCM = TAG('R', 'V', 'C', 'M');   // Validate the new address
                                                  // upon client address change.
 
diff --git a/quiche/quic/core/http/end_to_end_test.cc b/quiche/quic/core/http/end_to_end_test.cc
index 9338295..e0bfbb9 100644
--- a/quiche/quic/core/http/end_to_end_test.cc
+++ b/quiche/quic/core/http/end_to_end_test.cc
@@ -384,7 +384,7 @@
     }
     copt.push_back(kPLE1);
     if (!GetQuicReloadableFlag(
-            quic_remove_connection_migration_connection_option)) {
+            quic_remove_connection_migration_connection_option_v2)) {
       copt.push_back(kRVCM);
     }
     client_config_.SetConnectionOptionsToSend(copt);
diff --git a/quiche/quic/core/quic_connection.cc b/quiche/quic/core/quic_connection.cc
index 9865f61..c76ade9 100644
--- a/quiche/quic/core/quic_connection.cc
+++ b/quiche/quic/core/quic_connection.cc
@@ -623,10 +623,11 @@
     send_connection_close_for_invalid_version_ = true;
   }
   const bool remove_connection_migration_connection_option =
-      GetQuicReloadableFlag(quic_remove_connection_migration_connection_option);
+      GetQuicReloadableFlag(
+          quic_remove_connection_migration_connection_option_v2);
   if (remove_connection_migration_connection_option) {
     QUIC_RELOADABLE_FLAG_COUNT(
-        quic_remove_connection_migration_connection_option);
+        quic_remove_connection_migration_connection_option_v2);
   }
   if (framer_.version().HasIetfQuicFrames() && use_path_validator_ &&
       count_bytes_on_alternative_path_separately_ &&
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc
index d7b722c..cce10e7 100644
--- a/quiche/quic/core/quic_connection_test.cc
+++ b/quiche/quic/core/quic_connection_test.cc
@@ -1306,7 +1306,7 @@
     if (perspective == Perspective::IS_SERVER) {
       QuicConfig config;
       if (!GetQuicReloadableFlag(
-              quic_remove_connection_migration_connection_option)) {
+              quic_remove_connection_migration_connection_option_v2)) {
         QuicTagVector connection_options;
         connection_options.push_back(kRVCM);
         config.SetInitialReceivedConnectionOptions(connection_options);
@@ -14116,7 +14116,7 @@
 TEST_P(QuicConnectionTest,
        PathValidationFailedOnClientDueToLackOfServerConnectionId) {
   if (!GetQuicReloadableFlag(
-          quic_remove_connection_migration_connection_option)) {
+          quic_remove_connection_migration_connection_option_v2)) {
     QuicConfig config;
     EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
     connection_.SetFromConfig(config);
@@ -14144,7 +14144,7 @@
 TEST_P(QuicConnectionTest,
        PathValidationFailedOnClientDueToLackOfClientConnectionIdTheSecondTime) {
   if (!GetQuicReloadableFlag(
-          quic_remove_connection_migration_connection_option)) {
+          quic_remove_connection_migration_connection_option_v2)) {
     QuicConfig config;
     config.SetConnectionOptionsToSend({kRVCM});
     EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
@@ -14235,7 +14235,7 @@
 
 TEST_P(QuicConnectionTest, ServerConnectionIdRetiredUponPathValidationFailure) {
   if (!GetQuicReloadableFlag(
-          quic_remove_connection_migration_connection_option)) {
+          quic_remove_connection_migration_connection_option_v2)) {
     QuicConfig config;
     config.SetConnectionOptionsToSend({kRVCM});
     EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
@@ -14285,7 +14285,7 @@
 TEST_P(QuicConnectionTest,
        MigratePathDirectlyFailedDueToLackOfServerConnectionId) {
   if (!GetQuicReloadableFlag(
-          quic_remove_connection_migration_connection_option)) {
+          quic_remove_connection_migration_connection_option_v2)) {
     QuicConfig config;
     config.SetConnectionOptionsToSend({kRVCM});
     EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
@@ -14308,7 +14308,7 @@
 TEST_P(QuicConnectionTest,
        MigratePathDirectlyFailedDueToLackOfClientConnectionIdTheSecondTime) {
   if (!GetQuicReloadableFlag(
-          quic_remove_connection_migration_connection_option)) {
+          quic_remove_connection_migration_connection_option_v2)) {
     QuicConfig config;
     config.SetConnectionOptionsToSend({kRVCM});
     EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
@@ -14627,7 +14627,7 @@
 
 TEST_P(QuicConnectionTest, ServerRetireSelfIssuedConnectionId) {
   if (!GetQuicReloadableFlag(
-          quic_remove_connection_migration_connection_option)) {
+          quic_remove_connection_migration_connection_option_v2)) {
     QuicConfig config;
     config.SetConnectionOptionsToSend({kRVCM});
     EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
@@ -15076,7 +15076,7 @@
 
 TEST_P(QuicConnectionTest, AckElicitingFrames) {
   if (!GetQuicReloadableFlag(
-          quic_remove_connection_migration_connection_option)) {
+          quic_remove_connection_migration_connection_option_v2)) {
     QuicConfig config;
     config.SetConnectionOptionsToSend({kRVCM});
     EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index b0d34ab..b1c1dec 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -68,7 +68,7 @@
 // If true, flush pending frames as well as pending padding bytes on connection migration.
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_flush_pending_frames_and_padding_bytes_on_migration, true)
 // If true, ietf connection migration is no longer conditioned on connection option RVCM.
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_remove_connection_migration_connection_option, false)
+QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_remove_connection_migration_connection_option_v2, false)
 // If true, ignore incoming MAX_PUSH_ID frames (expect for enforcing frame type rules).
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_ignore_max_push_id, true)
 // If true, include stream information in idle timeout connection close detail.
