diff --git a/library/md2.c b/library/md2.c
index 17569c0..110cd95 100644
--- a/library/md2.c
+++ b/library/md2.c
@@ -51,13 +51,13 @@
 #endif /* POLARSSL_PLATFORM_C */
 #endif /* POLARSSL_SELF_TEST */
 
+#if !defined(POLARSSL_MD2_ALT)
+
 /* Implementation that should never be optimized out by the compiler */
 static void polarssl_zeroize( void *v, size_t n ) {
     volatile unsigned char *p = v; while( n-- ) *p++ = 0;
 }
 
-#if !defined(POLARSSL_MD2_ALT)
-
 static const unsigned char PI_SUBST[256] =
 {
     0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36,
diff --git a/library/md4.c b/library/md4.c
index d33cc52..8754d2f 100644
--- a/library/md4.c
+++ b/library/md4.c
@@ -51,13 +51,13 @@
 #endif /* POLARSSL_PLATFORM_C */
 #endif /* POLARSSL_SELF_TEST */
 
+#if !defined(POLARSSL_MD4_ALT)
+
 /* Implementation that should never be optimized out by the compiler */
 static void polarssl_zeroize( void *v, size_t n ) {
     volatile unsigned char *p = v; while( n-- ) *p++ = 0;
 }
 
-#if !defined(POLARSSL_MD4_ALT)
-
 /*
  * 32-bit integer manipulation macros (little endian)
  */
diff --git a/library/md5.c b/library/md5.c
index 49f0674..8c7ed1f 100644
--- a/library/md5.c
+++ b/library/md5.c
@@ -50,13 +50,13 @@
 #endif /* POLARSSL_PLATFORM_C */
 #endif /* POLARSSL_SELF_TEST */
 
+#if !defined(POLARSSL_MD5_ALT)
+
 /* Implementation that should never be optimized out by the compiler */
 static void polarssl_zeroize( void *v, size_t n ) {
     volatile unsigned char *p = v; while( n-- ) *p++ = 0;
 }
 
-#if !defined(POLARSSL_MD5_ALT)
-
 /*
  * 32-bit integer manipulation macros (little endian)
  */
diff --git a/library/sha1.c b/library/sha1.c
index fca6109..44de872 100644
--- a/library/sha1.c
+++ b/library/sha1.c
@@ -50,13 +50,13 @@
 #endif /* POLARSSL_PLATFORM_C */
 #endif /* POLARSSL_SELF_TEST */
 
+#if !defined(POLARSSL_SHA1_ALT)
+
 /* Implementation that should never be optimized out by the compiler */
 static void polarssl_zeroize( void *v, size_t n ) {
     volatile unsigned char *p = v; while( n-- ) *p++ = 0;
 }
 
-#if !defined(POLARSSL_SHA1_ALT)
-
 /*
  * 32-bit integer manipulation macros (big endian)
  */
diff --git a/library/sha256.c b/library/sha256.c
index 2b4b7e1..674fdf2 100644
--- a/library/sha256.c
+++ b/library/sha256.c
@@ -50,13 +50,13 @@
 #endif /* POLARSSL_PLATFORM_C */
 #endif /* POLARSSL_SELF_TEST */
 
+#if !defined(POLARSSL_SHA256_ALT)
+
 /* Implementation that should never be optimized out by the compiler */
 static void polarssl_zeroize( void *v, size_t n ) {
     volatile unsigned char *p = v; while( n-- ) *p++ = 0;
 }
 
-#if !defined(POLARSSL_SHA256_ALT)
-
 /*
  * 32-bit integer manipulation macros (big endian)
  */
diff --git a/library/sha512.c b/library/sha512.c
index 4074d33..bd607e0 100644
--- a/library/sha512.c
+++ b/library/sha512.c
@@ -56,13 +56,13 @@
 #endif /* POLARSSL_PLATFORM_C */
 #endif /* POLARSSL_SELF_TEST */
 
+#if !defined(POLARSSL_SHA512_ALT)
+
 /* Implementation that should never be optimized out by the compiler */
 static void polarssl_zeroize( void *v, size_t n ) {
     volatile unsigned char *p = v; while( n-- ) *p++ = 0;
 }
 
-#if !defined(POLARSSL_SHA512_ALT)
-
 /*
  * 64-bit integer manipulation macros (big endian)
  */
