diff --git a/library/x509parse.c b/library/x509parse.c
index 9d1846b..97a1755 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -1495,7 +1495,7 @@
     return( ret );
 }
 
-#if defined(POLARSSL_DES_C)
+#if defined(POLARSSL_DES_C) && defined(POLARSSL_MD5_C)
 /*
  * Read a 16-byte hex string and convert it to binary
  */
@@ -1569,7 +1569,12 @@
     int ret, len, enc;
     unsigned char *s1, *s2;
     unsigned char *p, *end;
+#if defined(POLARSSL_DES_C) && defined(POLARSSL_MD5_C)
     unsigned char des3_iv[8];
+#else
+    ((void) pwd);
+    ((void) pwdlen);
+#endif
 
     s1 = (unsigned char *) strstr( (char *) buf,
         "-----BEGIN RSA PRIVATE KEY-----" );
@@ -1591,7 +1596,7 @@
 
         if( memcmp( s1, "Proc-Type: 4,ENCRYPTED", 22 ) == 0 )
         {
-#if defined(POLARSSL_DES_C)
+#if defined(POLARSSL_DES_C) && defined(POLARSSL_MD5_C)
             enc++;
 
             s1 += 22;
@@ -1634,7 +1639,7 @@
 
         if( enc != 0 )
         {
-#if defined(POLARSSL_DES_C)
+#if defined(POLARSSL_DES_C) && defined(POLARSSL_MD5_C)
             if( pwd == NULL )
             {
                 free( buf );
@@ -2126,6 +2131,11 @@
     return( 0 );
 }
 
+/*
+ * Wrapper for x509 hashes.
+ *
+ * @param out   Buffer to receive the hash (Should be at least 64 bytes)
+ */
 static void x509_hash( unsigned char *in, int len, int alg,
                        unsigned char *out )
 {
@@ -2137,18 +2147,22 @@
 #if defined(POLARSSL_MD4_C)
         case SIG_RSA_MD4    :  md4( in, len, out ); break;
 #endif
+#if defined(POLARSSL_MD5_C)
         case SIG_RSA_MD5    :  md5( in, len, out ); break;
+#endif
+#if defined(POLARSSL_SHA1_C)
         case SIG_RSA_SHA1   : sha1( in, len, out ); break;
+#endif
 #if defined(POLARSSL_SHA2_C)
         case SIG_RSA_SHA224 : sha2( in, len, out, 1 ); break;
         case SIG_RSA_SHA256 : sha2( in, len, out, 0 ); break;
 #endif
-#if defined(POLARSSL_SHA2_C)
+#if defined(POLARSSL_SHA4_C)
         case SIG_RSA_SHA384 : sha4( in, len, out, 1 ); break;
         case SIG_RSA_SHA512 : sha4( in, len, out, 0 ); break;
 #endif
         default:
-            memset( out, '\xFF', len );
+            memset( out, '\xFF', 64 );
             break;
     }
 }
@@ -2447,6 +2461,7 @@
  */
 int x509_self_test( int verbose )
 {
+#if defined(POLARSSL_MD5_C)
     int ret, i, j;
     x509_cert cacert;
     x509_cert clicert;
@@ -2515,6 +2530,10 @@
     rsa_free( &rsa );
 
     return( 0 );
+#else
+    ((void) verbose);
+    return( POLARSSL_ERR_X509_FEATURE_UNAVAILABLE );
+#endif
 }
 
 #endif
