diff --git a/quic/core/quic_crypto_server_stream.cc b/quic/core/quic_crypto_server_stream.cc
index 059317e..234ecca 100644
--- a/quic/core/quic_crypto_server_stream.cc
+++ b/quic/core/quic_crypto_server_stream.cc
@@ -67,13 +67,11 @@
     std::unique_ptr<HandshakerInterface> handshaker)
     : QuicCryptoServerStreamBase(session),
       handshaker_(std::move(handshaker)),
-      create_handshaker_in_constructor_(
-          GetQuicReloadableFlag(quic_create_server_handshaker_in_constructor)),
       crypto_config_(crypto_config),
       compressed_certs_cache_(compressed_certs_cache),
       helper_(helper) {
   DCHECK_EQ(Perspective::IS_SERVER, session->connection()->perspective());
-  if (create_handshaker_in_constructor_ && !handshaker_) {
+  if (!handshaker_) {
     switch (session->connection()->version().handshake_protocol) {
       case PROTOCOL_QUIC_CRYPTO:
         handshaker_ = std::make_unique<QuicCryptoServerHandshaker>(
@@ -178,27 +176,6 @@
   return handshaker_->BufferSizeLimitForLevel(level);
 }
 
-void QuicCryptoServerStream::OnSuccessfulVersionNegotiation(
-    const ParsedQuicVersion& version) {
-  DCHECK_EQ(version, session()->connection()->version());
-  if (create_handshaker_in_constructor_) {
-    return;
-  }
-  CHECK(!handshaker_);
-  switch (session()->connection()->version().handshake_protocol) {
-    case PROTOCOL_QUIC_CRYPTO:
-      handshaker_ = std::make_unique<QuicCryptoServerHandshaker>(
-          crypto_config_, this, compressed_certs_cache_, session(), helper_);
-      break;
-    case PROTOCOL_TLS1_3:
-      QUIC_BUG << "Attempting to use QuicCryptoServerStream with TLS";
-      break;
-    case PROTOCOL_UNSUPPORTED:
-      QUIC_BUG << "Attempting to create QuicCryptoServerStream for unknown "
-                  "handshake protocol";
-  }
-}
-
 void QuicCryptoServerStream::set_handshaker(
     std::unique_ptr<QuicCryptoServerStream::HandshakerInterface> handshaker) {
   CHECK(!handshaker_);
diff --git a/quic/core/quic_crypto_server_stream.h b/quic/core/quic_crypto_server_stream.h
index 3150036..d6e621b 100644
--- a/quic/core/quic_crypto_server_stream.h
+++ b/quic/core/quic_crypto_server_stream.h
@@ -179,8 +179,6 @@
   void OnHandshakeDoneReceived() override;
   HandshakeState GetHandshakeState() const override;
   size_t BufferSizeLimitForLevel(EncryptionLevel level) const override;
-  void OnSuccessfulVersionNegotiation(
-      const ParsedQuicVersion& version) override;
 
  protected:
   QUIC_EXPORT_PRIVATE friend std::unique_ptr<QuicCryptoServerStreamBase>
@@ -212,8 +210,6 @@
 
  private:
   std::unique_ptr<HandshakerInterface> handshaker_;
-  // Latched value of quic_create_server_handshaker_in_constructor flag.
-  bool create_handshaker_in_constructor_;
 
   // Arguments from QuicCryptoServerStream constructor that might need to be
   // passed to the HandshakerInterface constructor in its late construction.
