diff --git a/quic/core/quic_crypto_client_handshaker.cc b/quic/core/quic_crypto_client_handshaker.cc
index bf432ff..158285d 100644
--- a/quic/core/quic_crypto_client_handshaker.cc
+++ b/quic/core/quic_crypto_client_handshaker.cc
@@ -321,10 +321,8 @@
       std::move(crypto_negotiated_params_->initial_crypters.encrypter));
   session()->connection()->SetDefaultEncryptionLevel(ENCRYPTION_ZERO_RTT);
 
-  // TODO(ianswett): Merge ENCRYPTION_REESTABLISHED and
-  // ENCRYPTION_FIRST_ESTABLSIHED
   encryption_established_ = true;
-  session()->OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_REESTABLISHED);
+  session()->OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_ESTABLISHED);
 }
 
 void QuicCryptoClientHandshaker::DoReceiveREJ(
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 3128a55..5486e64 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1143,7 +1143,7 @@
 
 void QuicSession::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) {
   switch (event) {
-    case ENCRYPTION_REESTABLISHED:
+    case ENCRYPTION_ESTABLISHED:
       // Retransmit originally packets that were sent, since they can't be
       // decrypted by the peer.
       connection_->RetransmitUnackedPackets(ALL_INITIAL_RETRANSMISSION);
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index b506906..6ab56f9 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -70,11 +70,9 @@
 
   // CryptoHandshakeEvent enumerates the events generated by a QuicCryptoStream.
   enum CryptoHandshakeEvent {
-    // ENCRYPTION_REESTABLISHED indicates that a client hello was rejected by
-    // the server and thus the encryption key has been updated. Therefore the
-    // connection should resend any packets that were sent under
-    // ENCRYPTION_ZERO_RTT. (Client only.)
-    ENCRYPTION_REESTABLISHED,
+    // ENCRYPTION_ESTABLISHED indicates that a client hello has been sent and
+    // subsequent packets will be encrypted. (Client only.)
+    ENCRYPTION_ESTABLISHED,
     // HANDSHAKE_CONFIRMED, in a client, indicates the server has accepted
     // our handshake. In a server it indicates that a full, valid client hello
     // has been received. (Client and server.)
@@ -236,7 +234,7 @@
   // Called by the QuicCryptoStream when the handshake enters a new state.
   //
   // Clients will call this function in the order:
-  //   zero or more ENCRYPTION_REESTABLISHED
+  //   zero or more ENCRYPTION_ESTABLISHED
   //   HANDSHAKE_CONFIRMED
   //
   // Servers will simply call it once with HANDSHAKE_CONFIRMED.
diff --git a/quic/core/tls_client_handshaker.cc b/quic/core/tls_client_handshaker.cc
index 50db484..3623901 100644
--- a/quic/core/tls_client_handshaker.cc
+++ b/quic/core/tls_client_handshaker.cc
@@ -301,7 +301,7 @@
   session()->NeuterUnencryptedData();
   encryption_established_ = true;
   handshake_confirmed_ = true;
-  session()->OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_REESTABLISHED);
+  session()->OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_ESTABLISHED);
   session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED);
 }
 
diff --git a/quic/core/tls_handshaker_test.cc b/quic/core/tls_handshaker_test.cc
index 5fb715b..35efa9f 100644
--- a/quic/core/tls_handshaker_test.cc
+++ b/quic/core/tls_handshaker_test.cc
@@ -320,7 +320,7 @@
   EXPECT_CALL(*client_conn_, CloseConnection(_, _, _)).Times(0);
   EXPECT_CALL(*server_conn_, CloseConnection(_, _, _)).Times(0);
   EXPECT_CALL(client_session_,
-              OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_REESTABLISHED));
+              OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_ESTABLISHED));
   EXPECT_CALL(client_session_,
               OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED));
   EXPECT_CALL(server_session_,
diff --git a/quic/quartc/quartc_session.cc b/quic/quartc/quartc_session.cc
index 599ea46..f206d62 100644
--- a/quic/quartc/quartc_session.cc
+++ b/quic/quartc/quartc_session.cc
@@ -152,9 +152,7 @@
 void QuartcSession::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) {
   QuicSession::OnCryptoHandshakeEvent(event);
   switch (event) {
-    case ENCRYPTION_REESTABLISHED:
-      // 1-rtt setup triggers 'ENCRYPTION_REESTABLISHED' (after REJ, when the
-      // CHLO is sent).
+    case ENCRYPTION_ESTABLISHED:
       DCHECK(IsEncryptionEstablished());
       DCHECK(session_delegate_);
       session_delegate_->OnConnectionWritable();
