diff --git a/library/md.c b/library/md.c
index b235203..e235bc8 100644
--- a/library/md.c
+++ b/library/md.c
@@ -120,12 +120,14 @@
 #endif
 
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
 const mbedtls_md_info_t mbedtls_sha384_info = {
     "SHA384",
     MBEDTLS_MD_SHA384,
     48,
     128,
 };
+#endif
 
 const mbedtls_md_info_t mbedtls_sha512_info = {
     "SHA512",
@@ -142,8 +144,10 @@
 
 #if defined(MBEDTLS_SHA512_C)
         MBEDTLS_MD_SHA512,
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         MBEDTLS_MD_SHA384,
 #endif
+#endif
 
 #if defined(MBEDTLS_SHA256_C)
         MBEDTLS_MD_SHA256,
@@ -211,8 +215,10 @@
         return mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 );
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
     if( !strcmp( "SHA384", md_name ) )
         return mbedtls_md_info_from_type( MBEDTLS_MD_SHA384 );
+#endif
     if( !strcmp( "SHA512", md_name ) )
         return mbedtls_md_info_from_type( MBEDTLS_MD_SHA512 );
 #endif
@@ -250,8 +256,10 @@
             return( &mbedtls_sha256_info );
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
             return( &mbedtls_sha384_info );
+#endif
         case MBEDTLS_MD_SHA512:
             return( &mbedtls_sha512_info );
 #endif
@@ -306,7 +314,9 @@
                 break;
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
             case MBEDTLS_MD_SHA384:
+#endif
             case MBEDTLS_MD_SHA512:
                 mbedtls_sha512_free( ctx->md_ctx );
                 break;
@@ -372,7 +382,9 @@
             break;
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
+#endif
         case MBEDTLS_MD_SHA512:
             mbedtls_sha512_clone( dst->md_ctx, src->md_ctx );
             break;
@@ -439,7 +451,9 @@
             break;
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
+#endif
         case MBEDTLS_MD_SHA512:
             ALLOC( sha512 );
             break;
@@ -498,8 +512,10 @@
             return( mbedtls_sha256_starts_ret( ctx->md_ctx, 0 ) );
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
             return( mbedtls_sha512_starts_ret( ctx->md_ctx, 1 ) );
+#endif
         case MBEDTLS_MD_SHA512:
             return( mbedtls_sha512_starts_ret( ctx->md_ctx, 0 ) );
 #endif
@@ -542,8 +558,10 @@
             return( mbedtls_sha256_update_ret( ctx->md_ctx, input, ilen ) );
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
             return( mbedtls_sha512_update_ret( ctx->md_ctx, input, ilen ) );
+#endif
         case MBEDTLS_MD_SHA512:
             return( mbedtls_sha512_update_ret( ctx->md_ctx, input, ilen ) );
 #endif
@@ -586,8 +604,10 @@
             return( mbedtls_sha256_finish_ret( ctx->md_ctx, output ) );
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
             return( mbedtls_sha512_finish_ret( ctx->md_ctx, output ) );
+#endif
         case MBEDTLS_MD_SHA512:
             return( mbedtls_sha512_finish_ret( ctx->md_ctx, output ) );
 #endif
@@ -631,8 +651,10 @@
             return( mbedtls_sha256_ret( input, ilen, output, 0 ) );
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
             return( mbedtls_sha512_ret( input, ilen, output, 1 ) );
+#endif
         case MBEDTLS_MD_SHA512:
             return( mbedtls_sha512_ret( input, ilen, output, 0 ) );
 #endif
@@ -839,8 +861,10 @@
             return( mbedtls_internal_sha256_process( ctx->md_ctx, data ) );
 #endif
 #if defined(MBEDTLS_SHA512_C)
+#if !defined(MBEDTLS_SHA512_NO_SHA384)
         case MBEDTLS_MD_SHA384:
             return( mbedtls_internal_sha512_process( ctx->md_ctx, data ) );
+#endif
         case MBEDTLS_MD_SHA512:
             return( mbedtls_internal_sha512_process( ctx->md_ctx, data ) );
 #endif
