diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h
index 570d9db..4b27831 100644
--- a/include/mbedtls/check_config.h
+++ b/include/mbedtls/check_config.h
@@ -354,8 +354,8 @@
 #endif
 
 #if defined(MBEDTLS_LMS_C) &&                                          \
-    ( !defined(MBEDTLS_PSA_CRYPTO_C) )
-#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C"
+    ( !defined(MBEDTLS_PSA_CRYPTO_C) && !defined(PSA_WANT_ALG_SHA256) )
+#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256"
 #endif
 
 #if defined(MBEDTLS_LMS_PRIVATE) &&                                    \
diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h
index 1ba4f3a..40ab783 100644
--- a/include/mbedtls/lms.h
+++ b/include/mbedtls/lms.h
@@ -139,7 +139,7 @@
                                                      Boolean values only. */
 } mbedtls_lmots_public_t;
 
-#ifdef MBEDTLS_LMS_PRIVATE
+#if defined(MBEDTLS_LMS_PRIVATE)
 /** LMOTS private context structure.
  *
  * A LMOTS private key is one hash output for each of digit of the digest +
@@ -163,7 +163,7 @@
     unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key.
                                                      Boolean values only. */
 } mbedtls_lmots_private_t;
-#endif /* MBEDTLS_LMS_PRIVATE */
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
 
 
 /** LMS parameters structure.
@@ -209,7 +209,7 @@
 } mbedtls_lms_public_t;
 
 
-#ifdef MBEDTLS_LMS_PRIVATE
+#if defined(MBEDTLS_LMS_PRIVATE)
 /** LMS private context structure.
  *
  * A LMS private key is a set of LMOTS private keys, an index to the next usable
@@ -237,7 +237,7 @@
     unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key.
                                                      Boolean values only. */
 } mbedtls_lms_private_t;
-#endif /* MBEDTLS_LMS_PRIVATE */
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
 
 /**
  * \brief                    This function initializes an LMS public context
@@ -301,7 +301,7 @@
                         const unsigned char *msg, size_t msg_size,
                         const unsigned char *sig, size_t sig_size );
 
-#ifdef MBEDTLS_LMS_PRIVATE
+#if defined(MBEDTLS_LMS_PRIVATE)
 /**
  * \brief                    This function initializes an LMS private context
  *
@@ -434,7 +434,7 @@
                       int (*f_rng)(void *, unsigned char *, size_t),
                       void* p_rng, unsigned char *msg, unsigned int msg_size,
                       unsigned char *sig, size_t sig_size, size_t *sig_len );
-#endif /* MBEDTLS_LMS_PRIVATE */
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
 
 #ifdef __cplusplus
 }
diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h
index c0caf75..4188afe 100644
--- a/include/mbedtls/mbedtls_config.h
+++ b/include/mbedtls/mbedtls_config.h
@@ -2485,7 +2485,7 @@
  *
  * Uncomment to enable the LMS signature algorithm and private key operations.
  */
-// #define MBEDTLS_LMS_PRIVATE
+//#define MBEDTLS_LMS_PRIVATE
 
 /**
  * \def MBEDTLS_NIST_KW_C
diff --git a/library/lmots.c b/library/lmots.c
index e196635..9a6c6be 100644
--- a/library/lmots.c
+++ b/library/lmots.c
@@ -32,7 +32,7 @@
 
 #include "common.h"
 
-#ifdef MBEDTLS_LMS_C
+#if defined(MBEDTLS_LMS_C)
 
 #include <string.h>
 
@@ -568,7 +568,7 @@
     return( 0 );
 }
 
-#ifdef MBEDTLS_LMS_PRIVATE
+#if defined(MBEDTLS_LMS_PRIVATE)
 
 void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx )
 {
@@ -851,5 +851,5 @@
     return( 0 );
 }
 
-#endif /* MBEDTLS_LMS_PRIVATE */
-#endif /* MBEDTLS_LMS_C */
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
+#endif /* defined(MBEDTLS_LMS_C) */
diff --git a/library/lmots.h b/library/lmots.h
index 214321a..37466b7 100644
--- a/library/lmots.h
+++ b/library/lmots.h
@@ -189,7 +189,7 @@
                           size_t msg_size, const unsigned char *sig,
                           size_t sig_size );
 
-#ifdef MBEDTLS_LMS_PRIVATE
+#if defined(MBEDTLS_LMS_PRIVATE)
 
 /**
  * \brief                    This function initializes a private LMOTS context
@@ -310,7 +310,7 @@
                         void *p_rng, const unsigned char *msg, size_t msg_size,
                         unsigned char *sig, size_t sig_size, size_t* sig_len );
 
-#endif /* MBEDTLS_LMS_PRIVATE */
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
 
 #ifdef __cplusplus
 }
diff --git a/library/lms.c b/library/lms.c
index 1c66946..6882a48 100644
--- a/library/lms.c
+++ b/library/lms.c
@@ -32,7 +32,7 @@
 
 #include "common.h"
 
-#ifdef MBEDTLS_LMS_C
+#if defined(MBEDTLS_LMS_C)
 
 #include <string.h>
 
@@ -402,7 +402,7 @@
     return( 0 );
 }
 
-#ifdef MBEDTLS_LMS_PRIVATE
+#if defined(MBEDTLS_LMS_PRIVATE)
 
 /* Calculate a full merkle tree based on a private key. This function
  * implements RFC8554 section 5.3, and is used to generate a public key (as the
@@ -773,5 +773,5 @@
     return( 0 );
 }
 
-#endif /* MBEDTLS_LMS_PRIVATE */
-#endif /* MBEDTLS_LMS_C */
+#endif /* defined(MBEDTLS_LMS_PRIVATE) */
+#endif /* defined(MBEDTLS_LMS_C) */
diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function
index dd8a665..85e1da7 100644
--- a/tests/suites/test_suite_lmots.function
+++ b/tests/suites/test_suite_lmots.function
@@ -24,11 +24,11 @@
 /* END_HEADER */
 
 /* BEGIN_DEPENDENCIES
- * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C
+ * depends_on:MBEDTLS_LMS_C
  * END_DEPENDENCIES
  */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
 void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id,
                               data_t *seed )
 {
@@ -52,7 +52,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
 void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed )
 {
     mbedtls_lmots_public_t pub_ctx;
@@ -92,7 +92,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
 void lmots_import_export_test (  data_t * pub_key )
 {
     mbedtls_lmots_public_t ctx;
@@ -113,7 +113,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
 void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed )
 {
     mbedtls_lmots_private_t ctx;
diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function
index 9003923..3c23b3b 100644
--- a/tests/suites/test_suite_lms.function
+++ b/tests/suites/test_suite_lms.function
@@ -4,11 +4,11 @@
 /* END_HEADER */
 
 /* BEGIN_DEPENDENCIES
- * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C
+ * depends_on:MBEDTLS_LMS_C
  * END_DEPENDENCIES
  */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
 void lms_sign_verify_test ( data_t *msg, data_t *seed )
 {
     mbedtls_lms_public_t pub_ctx;
@@ -44,7 +44,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
 void lms_sign_verify_null_msg_test( data_t *seed )
 {
     mbedtls_lms_public_t pub_ctx;
@@ -97,7 +97,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */
 void lms_import_export_test (  data_t * pub_key )
 {
     mbedtls_lms_public_t ctx;
