diff --git a/quiche/quic/core/crypto/quic_crypto_server_config.cc b/quiche/quic/core/crypto/quic_crypto_server_config.cc
index 11ccc2f..7a651bf 100644
--- a/quiche/quic/core/crypto/quic_crypto_server_config.cc
+++ b/quiche/quic/core/crypto/quic_crypto_server_config.cc
@@ -706,7 +706,7 @@
         params,
     quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig> signed_config,
     QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
-    std::unique_ptr<ProcessClientHelloResultCallback> done_cb) const {
+    std::shared_ptr<ProcessClientHelloResultCallback> done_cb) const {
   QUICHE_DCHECK(done_cb);
   auto context = std::make_unique<ProcessClientHelloContext>(
       validate_chlo_result, reject_only, connection_id, server_address,
diff --git a/quiche/quic/core/crypto/quic_crypto_server_config.h b/quiche/quic/core/crypto/quic_crypto_server_config.h
index c3febdc..f114546 100644
--- a/quiche/quic/core/crypto/quic_crypto_server_config.h
+++ b/quiche/quic/core/crypto/quic_crypto_server_config.h
@@ -335,7 +335,7 @@
       quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig>
           signed_config,
       QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
-      std::unique_ptr<ProcessClientHelloResultCallback> done_cb) const;
+      std::shared_ptr<ProcessClientHelloResultCallback> done_cb) const;
 
   // BuildServerConfigUpdateMessage invokes |cb| with a SCUP message containing
   // the current primary config, an up to date source-address token, and cert
@@ -587,7 +587,7 @@
         quiche::QuicheReferenceCountedPointer<QuicSignedServerConfig>
             signed_config,
         QuicByteCount total_framing_overhead, QuicByteCount chlo_packet_size,
-        std::unique_ptr<ProcessClientHelloResultCallback> done_cb)
+        std::shared_ptr<ProcessClientHelloResultCallback> done_cb)
         : validate_chlo_result_(validate_chlo_result),
           reject_only_(reject_only),
           connection_id_(connection_id),
@@ -674,7 +674,7 @@
         signed_config_;
     const QuicByteCount total_framing_overhead_;
     const QuicByteCount chlo_packet_size_;
-    std::unique_ptr<ProcessClientHelloResultCallback> done_cb_;
+    std::shared_ptr<ProcessClientHelloResultCallback> done_cb_;
   };
 
   // Callback class for bridging between ProcessClientHello and
diff --git a/quiche/quic/core/quic_crypto_server_stream.cc b/quiche/quic/core/quic_crypto_server_stream.cc
index 5d41e47..2bd8fbd 100644
--- a/quiche/quic/core/quic_crypto_server_stream.cc
+++ b/quiche/quic/core/quic_crypto_server_stream.cc
@@ -69,7 +69,6 @@
       zero_rtt_attempted_(false),
       chlo_packet_size_(0),
       validate_client_hello_cb_(nullptr),
-      process_client_hello_cb_(nullptr),
       encryption_established_(false),
       one_rtt_keys_available_(false),
       one_rtt_packet_decrypted_(false),
@@ -89,9 +88,10 @@
     send_server_config_update_cb_->Cancel();
     send_server_config_update_cb_ = nullptr;
   }
-  if (process_client_hello_cb_ != nullptr) {
-    process_client_hello_cb_->Cancel();
-    process_client_hello_cb_ = nullptr;
+  if (std::shared_ptr<ProcessClientHelloCallback> cb =
+          process_client_hello_cb_.lock()) {
+    cb->Cancel();
+    process_client_hello_cb_.reset();
   }
 }
 
@@ -115,7 +115,7 @@
   }
 
   if (validate_client_hello_cb_ != nullptr ||
-      process_client_hello_cb_ != nullptr) {
+      !process_client_hello_cb_.expired()) {
     // Already processing some other handshake message.  The protocol
     // does not allow for clients to send multiple handshake messages
     // before the server has a chance to respond.
@@ -129,7 +129,7 @@
 
   std::unique_ptr<ValidateCallback> cb(new ValidateCallback(this));
   QUICHE_DCHECK(validate_client_hello_cb_ == nullptr);
-  QUICHE_DCHECK(process_client_hello_cb_ == nullptr);
+  QUICHE_DCHECK(process_client_hello_cb_.expired());
   validate_client_hello_cb_ = cb.get();
   crypto_config_->ValidateClientHello(
       message, GetClientAddress(), session()->connection()->self_address(),
@@ -144,12 +144,11 @@
     std::unique_ptr<ProofSource::Details> details) {
   // Clear the callback that got us here.
   QUICHE_DCHECK(validate_client_hello_cb_ != nullptr);
-  QUICHE_DCHECK(process_client_hello_cb_ == nullptr);
+  QUICHE_DCHECK(process_client_hello_cb_.expired());
   validate_client_hello_cb_ = nullptr;
 
-  std::unique_ptr<ProcessClientHelloCallback> cb(
-      new ProcessClientHelloCallback(this, result));
-  process_client_hello_cb_ = cb.get();
+  auto cb = std::make_shared<ProcessClientHelloCallback>(this, result);
+  process_client_hello_cb_ = cb;
   ProcessClientHello(result, std::move(details), std::move(cb));
 }
 
@@ -161,9 +160,9 @@
         std::unique_ptr<DiversificationNonce> diversification_nonce,
         std::unique_ptr<ProofSource::Details> proof_source_details) {
   // Clear the callback that got us here.
-  QUICHE_DCHECK(process_client_hello_cb_ != nullptr);
+  QUICHE_DCHECK(!process_client_hello_cb_.expired());
   QUICHE_DCHECK(validate_client_hello_cb_ == nullptr);
-  process_client_hello_cb_ = nullptr;
+  process_client_hello_cb_.reset();
   proof_source_details_ = std::move(proof_source_details);
 
   AdjustTestValue("quic::QuicCryptoServerStream::after_process_client_hello",
@@ -457,7 +456,7 @@
         ValidateClientHelloResultCallback::Result>
         result,
     std::unique_ptr<ProofSource::Details> proof_source_details,
-    std::unique_ptr<ProcessClientHelloResultCallback> done_cb) {
+    std::shared_ptr<ProcessClientHelloResultCallback> done_cb) {
   proof_source_details_ = std::move(proof_source_details);
   const CryptoHandshakeMessage& message = result->client_hello;
   std::string error_details;
diff --git a/quiche/quic/core/quic_crypto_server_stream.h b/quiche/quic/core/quic_crypto_server_stream.h
index f91ceba..665d071 100644
--- a/quiche/quic/core/quic_crypto_server_stream.h
+++ b/quiche/quic/core/quic_crypto_server_stream.h
@@ -101,7 +101,7 @@
           ValidateClientHelloResultCallback::Result>
           result,
       std::unique_ptr<ProofSource::Details> proof_source_details,
-      std::unique_ptr<ProcessClientHelloResultCallback> done_cb);
+      std::shared_ptr<ProcessClientHelloResultCallback> done_cb);
 
   // Hook that allows the server to set QuicConfig defaults just
   // before going through the parameter negotiation step.
@@ -254,7 +254,7 @@
   // ProcessClientHello and forward it to
   // FinishProcessingHandshakeMessageAfterProcessClientHello.  Note that this
   // field is mutually exclusive with validate_client_hello_cb_.
-  ProcessClientHelloCallback* process_client_hello_cb_;
+  std::weak_ptr<ProcessClientHelloCallback> process_client_hello_cb_;
 
   // The ProofSource::Details from this connection.
   std::unique_ptr<ProofSource::Details> proof_source_details_;
