diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index 6f4affb..3b367d3 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -859,21 +859,6 @@
   return true;
 }
 
-std::unique_ptr<QuicEncryptedPacket>
-QuicPacketCreator::SerializeVersionNegotiationPacket(
-    bool ietf_quic,
-    bool use_length_prefix,
-    const ParsedQuicVersionVector& supported_versions) {
-  DCHECK_EQ(Perspective::IS_SERVER, framer_->perspective());
-  std::unique_ptr<QuicEncryptedPacket> encrypted =
-      QuicFramer::BuildVersionNegotiationPacket(
-          server_connection_id_, client_connection_id_, ietf_quic,
-          use_length_prefix, supported_versions);
-  DCHECK(encrypted);
-  DCHECK_GE(max_packet_length_, encrypted->length());
-  return encrypted;
-}
-
 std::unique_ptr<SerializedPacket>
 QuicPacketCreator::SerializeConnectivityProbingPacket() {
   QUIC_BUG_IF(VersionHasIetfQuicFrames(framer_->transport_version()))
diff --git a/quic/core/quic_packet_creator.h b/quic/core/quic_packet_creator.h
index 0307566..66fd57a 100644
--- a/quic/core/quic_packet_creator.h
+++ b/quic/core/quic_packet_creator.h
@@ -231,12 +231,6 @@
   bool AddPaddedSavedFrame(const QuicFrame& frame,
                            TransmissionType transmission_type);
 
-  // Creates a version negotiation packet which supports |supported_versions|.
-  std::unique_ptr<QuicEncryptedPacket> SerializeVersionNegotiationPacket(
-      bool ietf_quic,
-      bool use_length_prefix,
-      const ParsedQuicVersionVector& supported_versions);
-
   // Creates a connectivity probing packet for versions prior to version 99.
   std::unique_ptr<SerializedPacket> SerializeConnectivityProbingPacket();
 
diff --git a/quic/core/quic_packet_creator_test.cc b/quic/core/quic_packet_creator_test.cc
index ad96fcb..d76f198 100644
--- a/quic/core/quic_packet_creator_test.cc
+++ b/quic/core/quic_packet_creator_test.cc
@@ -579,28 +579,6 @@
   }
 }
 
-TEST_P(QuicPacketCreatorTest, SerializeVersionNegotiationPacket) {
-  QuicFramerPeer::SetPerspective(&client_framer_, Perspective::IS_SERVER);
-  ParsedQuicVersionVector versions;
-  versions.push_back(test::QuicVersionMax());
-  const bool ietf_quic =
-      VersionHasIetfInvariantHeader(creator_.transport_version());
-  const bool has_length_prefix =
-      GetParam().version.HasLengthPrefixedConnectionIds();
-  std::unique_ptr<QuicEncryptedPacket> encrypted(
-      creator_.SerializeVersionNegotiationPacket(ietf_quic, has_length_prefix,
-                                                 versions));
-
-  {
-    InSequence s;
-    EXPECT_CALL(framer_visitor_, OnPacket());
-    EXPECT_CALL(framer_visitor_, OnUnauthenticatedPublicHeader(_));
-    EXPECT_CALL(framer_visitor_, OnVersionNegotiationPacket(_));
-  }
-  QuicFramerPeer::SetPerspective(&client_framer_, Perspective::IS_CLIENT);
-  client_framer_.ProcessPacket(*encrypted);
-}
-
 // Test that the path challenge connectivity probing packet is serialized
 // correctly as a padded PATH CHALLENGE packet.
 TEST_P(QuicPacketCreatorTest, BuildPathChallengePacket) {
