diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 8a1d854..ce254d4 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -487,16 +487,10 @@
   // connection ID that is at least 64 bits long. After that initial
   // connection ID, the dispatcher picks a new one of its expected length.
   // Therefore we should never receive a connection ID that is smaller
-  // than 64 bits and smaller than what we expect.
-  bool should_check_short_connection_ids = true;
-  if (GetQuicReloadableFlag(
-          quic_send_version_negotiation_for_short_connection_ids)) {
-    QUIC_RELOADABLE_FLAG_COUNT(
-        quic_send_version_negotiation_for_short_connection_ids);
-    should_check_short_connection_ids =
-        packet_info.version_flag && packet_info.version.IsKnown();
-  }
-  if (should_check_short_connection_ids &&
+  // than 64 bits and smaller than what we expect. Unless the version is
+  // unknown, in which case we allow short connection IDs for version
+  // negotiation because that version could allow those.
+  if (packet_info.version_flag && packet_info.version.IsKnown() &&
       server_connection_id.length() < kQuicMinimumInitialConnectionIdLength &&
       server_connection_id.length() < expected_server_connection_id_length_ &&
       !allow_short_initial_server_connection_ids_) {
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index b801228..ba2c6ea 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -1101,8 +1101,6 @@
     TestVersionNegotiationForUnknownVersionInvalidShortInitialConnectionId(
         const QuicConnectionId& server_connection_id,
         const QuicConnectionId& client_connection_id) {
-  SetQuicReloadableFlag(quic_send_version_negotiation_for_short_connection_ids,
-                        true);
   CreateTimeWaitListManager();
 
   QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index 81df1e4..c6d3d27 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -56,7 +56,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_path_response, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_timestamps, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_tls_crypto_error_code, false)
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_send_version_negotiation_for_short_connection_ids, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_single_ack_in_packet2, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_split_up_send_rst_2, true)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_start_peer_migration_earlier, false)
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index e53bc04..5dee155 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -576,8 +576,6 @@
 void QuicVersionInitializeSupportForIetfDraft() {
   // Enable necessary flags.
   SetQuicRestartFlag(quic_enable_zero_rtt_for_tls_v2, true);
-  SetQuicReloadableFlag(quic_send_version_negotiation_for_short_connection_ids,
-                        true);
 }
 
 void QuicEnableVersion(const ParsedQuicVersion& version) {
