diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h
index f9a5970..57d2085 100644
--- a/include/mbedtls/ssl.h
+++ b/include/mbedtls/ssl.h
@@ -2696,6 +2696,18 @@
  * \brief          Configure one or more pre-shared keys (PSKs) and their
  *                 identities to be used in PSK-based ciphersuites.
  *
+ *                 This function may be called multiple times to attempt
+ *                 to register multiple PSKs. The number of supported PSKs
+ *                 is version-specific (see below for the current limit).
+ *                 Once the limit is reached, this function fails, maintaining
+ *                 the PSKs previously configured and ignoring the excess request.
+ *                 This behavior is in contrast to Mbed TLS 2.x, where later
+ *                 invocations would overwrite the effect of earlier calls.
+ *
+ * \note           Currently, the library supports only support a single PSK,
+ *                 but this limit is not part of the API and may change in
+ *                 future minor versions.
+ *
  * \note           This is mainly useful for clients. Servers will usually
  *                 want to use \c mbedtls_ssl_conf_psk_cb() instead.
  *
@@ -2713,15 +2725,6 @@
  *                 hence need not be preserved by the caller for the lifetime
  *                 of the SSL configuration.
  *
- * \note           While this function may be called multiple times to
- *                 register multiple PSKs, the number of supported PSKs
- *                 is implementation-defined. Once the limit is reached,
- *                 this function fails, maintaining the PSKs previously
- *                 configured and ignoring the excess request.
- *                 This behavior is in contrast to Mbed TLS 2.x, where
- *                 later invocations would overwrite the effect of earlier
- *                 calls.
- *
  * \return         \c 0 if successful.
  * \return         #MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE if no more PSKs
  *                 can be configured. In this case, the SSL configuration
@@ -2737,6 +2740,18 @@
  * \brief          Configure one or more opaque pre-shared keys (PSKs) and
  *                 their identities to be used in PSK-based ciphersuites.
  *
+ *                 This function may be called multiple times to attempt
+ *                 to register multiple PSKs. The number of supported PSKs
+ *                 is version-specific (see below for the current limit).
+ *                 Once the limit is reached, this function fails, maintaining
+ *                 the PSKs previously configured and ignoring the excess request.
+ *                 This behavior is in contrast to Mbed TLS 2.x, where later
+ *                 invocations would overwrite the effect of earlier calls.
+ *
+ * \note           Currently, the library supports only support a single PSK,
+ *                 but this limit is not part of the API and may change in
+ *                 future minor versions.
+ *
  * \note           This is mainly useful for clients. Servers will usually
  *                 want to use \c mbedtls_ssl_conf_psk_cb() instead.
  *
@@ -2759,15 +2774,6 @@
  *                 not be preserved by the caller for the lifetime of the
  *                 SSL configuration.
  *
- * \note           While this function may be called multiple times to
- *                 register multiple PSKs, the number of supported PSKs
- *                 is implementation-defined. Once the limit is reached,
- *                 this function fails, maintaining the PSKs previously
- *                 configured and ignoring the excess request.
- *                 This behavior is in contrast to Mbed TLS 2.x, where
- *                 later invocations would overwrite the effect of earlier
- *                 calls.
- *
  * \return         \c 0 if successful.
  * \return         #MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE if no more PSKs
  *                 can be configured. In this case, the SSL configuration
