diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h
index df81e92..bd860fe 100644
--- a/include/mbedtls/ssl.h
+++ b/include/mbedtls/ssl.h
@@ -750,10 +750,10 @@
 
 typedef enum {
 /*
- * The client has not sent the first ClientHello yet, it is unknown if the
- * client will send an early data indication extension or not.
+ * The client has not sent the first ClientHello yet, the negotiation of early
+ * data has not started yet.
  */
-    MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN,
+    MBEDTLS_SSL_EARLY_DATA_STATE_IDLE,
 
 /*
  * The client has not indicated the use of early data to the server.
@@ -1756,7 +1756,7 @@
 #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C)
     /**
      * State of the negotiation and transfer of early data. Reset to
-     * MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN when the context is reset.
+     * MBEDTLS_SSL_EARLY_DATA_STATE_IDLE when the context is reset.
      */
     mbedtls_ssl_early_data_state MBEDTLS_PRIVATE(early_data_state);
 #endif
diff --git a/library/ssl_msg.c b/library/ssl_msg.c
index ccced0a..56e5514 100644
--- a/library/ssl_msg.c
+++ b/library/ssl_msg.c
@@ -6098,7 +6098,7 @@
 
     /*
      * If we are at the beginning of the handshake, the early data state being
-     * equal to MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN or
+     * equal to MBEDTLS_SSL_EARLY_DATA_STATE_IDLE or
      * MBEDTLS_SSL_EARLY_DATA_STATE_SENT advance the handshake just
      * enough to be able to send early data if possible. That way, we can
      * guarantee that when starting the handshake with this function we will
@@ -6108,9 +6108,9 @@
      * as the early data outbound transform has not been set as we may have to
      * first send a dummy CCS in clear.
      */
-    if ((ssl->early_data_state == MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN) ||
+    if ((ssl->early_data_state == MBEDTLS_SSL_EARLY_DATA_STATE_IDLE) ||
         (ssl->early_data_state == MBEDTLS_SSL_EARLY_DATA_STATE_SENT)) {
-        while ((ssl->early_data_state == MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN) ||
+        while ((ssl->early_data_state == MBEDTLS_SSL_EARLY_DATA_STATE_IDLE) ||
                (ssl->early_data_state == MBEDTLS_SSL_EARLY_DATA_STATE_SENT)) {
             ret = mbedtls_ssl_handshake_step(ssl);
             if (ret != 0) {
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 97235ef..681ccab 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -1096,7 +1096,7 @@
 
 #if defined(MBEDTLS_SSL_EARLY_DATA)
 #if defined(MBEDTLS_SSL_CLI_C)
-    ssl->early_data_state = MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN;
+    ssl->early_data_state = MBEDTLS_SSL_EARLY_DATA_STATE_IDLE;
 #endif
 #if defined(MBEDTLS_SSL_SRV_C)
     ssl->discard_early_data_record = MBEDTLS_SSL_EARLY_DATA_NO_DISCARD;
diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function
index d470cd8..4960957 100644
--- a/tests/suites/test_suite_ssl.function
+++ b/tests/suites/test_suite_ssl.function
@@ -3904,13 +3904,13 @@
                     case TEST_EARLY_DATA_NO_INDICATION_SENT: /* Intentional fallthrough */
                     case TEST_EARLY_DATA_SERVER_REJECTS:
                         TEST_EQUAL(client_ep.ssl.early_data_state,
-                                   MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN);
+                                   MBEDTLS_SSL_EARLY_DATA_STATE_IDLE);
                         break;
 
                     case TEST_EARLY_DATA_HRR:
                         if (!client_ep.ssl.handshake->hello_retry_request_flag) {
                             TEST_EQUAL(client_ep.ssl.early_data_state,
-                                       MBEDTLS_SSL_EARLY_DATA_STATE_UNKNOWN);
+                                       MBEDTLS_SSL_EARLY_DATA_STATE_IDLE);
                         } else {
                             TEST_EQUAL(client_ep.ssl.early_data_state,
                                        MBEDTLS_SSL_EARLY_DATA_STATE_REJECTED);
