diff --git a/include/mbedtls/aead_chacha20_poly1305.h b/include/mbedtls/aead_chacha20_poly1305.h
index 6c8e420b5..6f7ab6f7f 100644
--- a/include/mbedtls/aead_chacha20_poly1305.h
+++ b/include/mbedtls/aead_chacha20_poly1305.h
@@ -29,11 +29,6 @@
 #include MBEDTLS_CONFIG_FILE
 #endif
 
-#if !defined(MBEDTLS_AEAD_CHACHA20_POLY1305_ALT)
-
-#include "chacha20.h"
-#include "poly1305.h"
-
 #define MBEDTLS_ERR_AEAD_CHACHA20_POLY1305_BAD_INPUT_DATA -0x00047 /**< Invalid input parameter(s). */
 #define MBEDTLS_ERR_AEAD_CHACHA20_POLY1305_BAD_STATE      -0x00049 /**< The requested operation is not permitted in the current state */
 
@@ -44,6 +39,11 @@ typedef enum
 }
 mbedtls_aead_chacha20_poly1305_mode_t;
 
+#if !defined(MBEDTLS_AEAD_CHACHA20_POLY1305_ALT)
+
+#include "chacha20.h"
+#include "poly1305.h"
+
 typedef struct
 {
     mbedtls_chacha20_context chacha20_ctx;      /** ChaCha20 context */
@@ -55,6 +55,10 @@ typedef struct
 }
 mbedtls_aead_chacha20_poly1305_context;
 
+#else /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */
+#include "aead_chacha20_poly1305_alt.h"
+#endif /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */
+
 /**
  * \brief               Initialize ChaCha20-Poly1305 context
  *
@@ -183,10 +187,6 @@ int mbedtls_aead_chacha20_poly1305_update( mbedtls_aead_chacha20_poly1305_contex
 int mbedtls_aead_chacha20_poly1305_finish( mbedtls_aead_chacha20_poly1305_context *ctx,
                                            unsigned char mac[16] );
 
-#else /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */
-#include "aead_chacha20_poly1305_alt.h"
-#endif /* !MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */
-
 /**
  * \brief               Encrypt or decrypt data, and produce a MAC with ChaCha20-Poly1305.
  *
diff --git a/include/mbedtls/chacha20.h b/include/mbedtls/chacha20.h
index ccce12270..a2856a7e4 100644
--- a/include/mbedtls/chacha20.h
+++ b/include/mbedtls/chacha20.h
@@ -31,13 +31,13 @@
 #include MBEDTLS_CONFIG_FILE
 #endif
 
-#if !defined(MBEDTLS_CHACHA20_ALT)
-
 #include <stdint.h>
 #include <stddef.h>
 
 #define MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA -0x003B /**< Invalid input parameter(s). */
 
+#if !defined(MBEDTLS_CHACHA20_ALT)
+
 typedef struct
 {
     uint32_t initial_state[16];  /*! Holds the initial state (before round operations) */
@@ -47,6 +47,10 @@ typedef struct
 }
 mbedtls_chacha20_context;
 
+#else  /* MBEDTLS_CHACHA20_ALT */
+#include "chacha20_alt.h"
+#endif /* MBEDTLS_CHACHA20_ALT */
+
 /**
  * \brief           Initialize ChaCha20 context
  *
@@ -149,10 +153,6 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx,
                               const unsigned char *input,
                               unsigned char *output );
 
-#else  /* MBEDTLS_CHACHA20_ALT */
-#include "chacha20_alt.h"
-#endif /* MBEDTLS_CHACHA20_ALT */
-
 /**
  * \brief           Encrypt or decrypt a message using ChaCha20.
  *
diff --git a/include/mbedtls/poly1305.h b/include/mbedtls/poly1305.h
index ea9364a3c..915f8ab0d 100644
--- a/include/mbedtls/poly1305.h
+++ b/include/mbedtls/poly1305.h
@@ -32,10 +32,10 @@
 #include <stdint.h>
 #include <stddef.h>
 
-#if !defined(MBEDTLS_POLY1305_ALT)
-
 #define MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA -0x0041 /**< Invalid input parameter(s). */
 
+#if !defined(MBEDTLS_POLY1305_ALT)
+
 typedef struct
 {
     uint32_t r[4];      /** Stores the value for 'r' (low 128 bits of the key) */
@@ -46,6 +46,10 @@ typedef struct
 }
 mbedtls_poly1305_context;
 
+#else  /* MBEDTLS_POLY1305_ALT */
+#include "poly1305_alt.h"
+#endif /* MBEDTLS_POLY1305_ALT */
+
 /**
  * \brief               Initialize a Poly1305 context
  *
@@ -109,10 +113,6 @@ int mbedtls_poly1305_update( mbedtls_poly1305_context *ctx,
 int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx,
                              unsigned char mac[16] );
 
-#else  /* MBEDTLS_POLY1305_ALT */
-#include "poly1305_alt.h"
-#endif /* MBEDTLS_POLY1305_ALT */
-
 /**
  * \brief               Generate the Poly1305 MAC of some data with the given key.
  *
diff --git a/library/aead_chacha20_poly1305.c b/library/aead_chacha20_poly1305.c
index 8d7b63a70..2e07f1ed4 100644
--- a/library/aead_chacha20_poly1305.c
+++ b/library/aead_chacha20_poly1305.c
@@ -291,8 +291,6 @@ int mbedtls_aead_chacha20_poly1305_finish( mbedtls_aead_chacha20_poly1305_contex
     return( 0 );
 }
 
-#endif /* MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */
-
 int mbedtls_aead_chacha20_poly1305_crypt_and_mac ( const unsigned char key[32],
                                                     const unsigned char nonce[12],
                                                     mbedtls_aead_chacha20_poly1305_mode_t mode,
@@ -331,6 +329,8 @@ cleanup:
     return( result );
 }
 
+#endif /* MBEDTLS_AEAD_CHACHA20_POLY1305_ALT */
+
 #if defined(MBEDTLS_SELF_TEST)
 
 static const unsigned char test_key[1][32] =
diff --git a/library/chacha20.c b/library/chacha20.c
index 4c2d8ef9a..5d2c3e5bf 100644
--- a/library/chacha20.c
+++ b/library/chacha20.c
@@ -354,8 +354,6 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx,
     return( 0 );
 }
 
-#endif /* !MBEDTLS_CHACHA20_ALT */
-
 int mbedtls_chacha20_crypt( const unsigned char key[32],
                             const unsigned char nonce[12],
                             uint32_t counter,
@@ -383,6 +381,8 @@ cleanup:
     return( result );
 }
 
+#endif /* !MBEDTLS_CHACHA20_ALT */
+
 #if defined(MBEDTLS_SELF_TEST)
 
 static const unsigned char test_keys[2][32] =
diff --git a/library/poly1305.c b/library/poly1305.c
index 842a4d464..6acbc7fa5 100644
--- a/library/poly1305.c
+++ b/library/poly1305.c
@@ -390,8 +390,6 @@ int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx,
     return( 0 );
 }
 
-#endif /* MBEDTLS_POLY1305_ALT */
-
 int mbedtls_poly1305_mac( const unsigned char key[32],
                            size_t ilen,
                            const unsigned char *input,
@@ -417,6 +415,8 @@ cleanup:
     return( 0 );
 }
 
+#endif /* MBEDTLS_POLY1305_ALT */
+
 #if defined(MBEDTLS_SELF_TEST)
 
 static const unsigned char test_keys[2][32] =