diff --git a/ChangeLog b/ChangeLog
index fbb159866b66a680ae4b7c34da41b293be740e66..427ad879b81f9484eccedfcce923a1aeab68857c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2020-11-30  Niels Möller  <nisse@lysator.liu.se>
+
+	* aes-internal.h: Delete name mangling of internal symbols. Update
+	all internal references to use _nettle prefix.
+
 2020-11-26  Niels Möller  <nisse@lysator.liu.se>
 
 	Enable powerpc64 gcm code in fat builds. Based on patch
diff --git a/aes-decrypt.c b/aes-decrypt.c
index cb9b0cea9039b790fac622cb26ca4dcef3a68138..1c22bfbbf98a5c7fc4e78e8409b5145d81d81fd1 100644
--- a/aes-decrypt.c
+++ b/aes-decrypt.c
@@ -371,8 +371,8 @@ aes128_decrypt(const struct aes128_ctx *ctx,
 	       const uint8_t *src)
 {
   assert(!(length % AES_BLOCK_SIZE) );
-  _aes_decrypt(_AES128_ROUNDS, ctx->keys, &_aes_decrypt_table,
-	       length, dst, src);
+  _nettle_aes_decrypt(_AES128_ROUNDS, ctx->keys, &_aes_decrypt_table,
+		      length, dst, src);
 }
 
 void
@@ -381,8 +381,8 @@ aes192_decrypt(const struct aes192_ctx *ctx,
 	       const uint8_t *src)
 {
   assert(!(length % AES_BLOCK_SIZE) );
-  _aes_decrypt(_AES192_ROUNDS, ctx->keys, &_aes_decrypt_table,
-	       length, dst, src);
+  _nettle_aes_decrypt(_AES192_ROUNDS, ctx->keys, &_aes_decrypt_table,
+		      length, dst, src);
 }
 
 void
@@ -391,6 +391,6 @@ aes256_decrypt(const struct aes256_ctx *ctx,
 	       const uint8_t *src)
 {
   assert(!(length % AES_BLOCK_SIZE) );
-  _aes_decrypt(_AES256_ROUNDS, ctx->keys, &_aes_decrypt_table,
-	       length, dst, src);
+  _nettle_aes_decrypt(_AES256_ROUNDS, ctx->keys, &_aes_decrypt_table,
+		      length, dst, src);
 }
diff --git a/aes-encrypt-table.c b/aes-encrypt-table.c
index 200de7c34ea1d8bb0336d5b7b7264eba50d5ac44..0c39e9f5a96cc4447e4b4dbd140b16bff202af9c 100644
--- a/aes-encrypt-table.c
+++ b/aes-encrypt-table.c
@@ -49,7 +49,7 @@
  * consistent with the row numbering. */
 
 const struct aes_table
-_aes_encrypt_table =
+_nettle_aes_encrypt_table =
   { /* sbox */
     {
       0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,
diff --git a/aes-encrypt.c b/aes-encrypt.c
index d1496e54fc34c4b3dcd5925871557f0fdf7e25c2..257fa4029d5f72669f857269098420f6a25a002a 100644
--- a/aes-encrypt.c
+++ b/aes-encrypt.c
@@ -69,8 +69,8 @@ aes128_encrypt(const struct aes128_ctx *ctx,
 	       const uint8_t *src)
 {
   assert(!(length % AES_BLOCK_SIZE) );
-  _aes_encrypt(_AES128_ROUNDS, ctx->keys, &_aes_encrypt_table,
-	       length, dst, src);
+  _nettle_aes_encrypt(_AES128_ROUNDS, ctx->keys, &_nettle_aes_encrypt_table,
+		      length, dst, src);
 }
 
 void
@@ -79,8 +79,8 @@ aes192_encrypt(const struct aes192_ctx *ctx,
 	       const uint8_t *src)
 {
   assert(!(length % AES_BLOCK_SIZE) );
-  _aes_encrypt(_AES192_ROUNDS, ctx->keys, &_aes_encrypt_table,
-	       length, dst, src);
+  _nettle_aes_encrypt(_AES192_ROUNDS, ctx->keys, &_nettle_aes_encrypt_table,
+		      length, dst, src);
 }
 
 void
@@ -89,6 +89,6 @@ aes256_encrypt(const struct aes256_ctx *ctx,
 	       const uint8_t *src)
 {
   assert(!(length % AES_BLOCK_SIZE) );
-  _aes_encrypt(_AES256_ROUNDS, ctx->keys, &_aes_encrypt_table,
-	       length, dst, src);
+  _nettle_aes_encrypt(_AES256_ROUNDS, ctx->keys, &_nettle_aes_encrypt_table,
+		      length, dst, src);
 }
diff --git a/aes-internal.h b/aes-internal.h
index 7001d126e4b0b713f5e8d3c4f7aba23ea3625791..04f61c8c68381f04e28728a3f1efe350f0a4dd4e 100644
--- a/aes-internal.h
+++ b/aes-internal.h
@@ -36,13 +36,6 @@
 
 #include "aes.h"
 
-/* Name mangling */
-#define _aes_set_key _nettle_aes_set_key
-#define _aes_invert _nettle_aes_invert
-#define _aes_encrypt _nettle_aes_encrypt
-#define _aes_decrypt _nettle_aes_decrypt
-#define _aes_encrypt_table _nettle_aes_encrypt_table
-
 /* Define to use only small tables. */
 #ifndef AES_SMALL
 # define AES_SMALL 0
@@ -61,23 +54,23 @@ struct aes_table
 };
 
 void
-_aes_set_key(unsigned nr, unsigned nk,
-	     uint32_t *subkeys, const uint8_t *key);
+_nettle_aes_set_key(unsigned nr, unsigned nk,
+		    uint32_t *subkeys, const uint8_t *key);
 
 void
-_aes_invert(unsigned rounds, uint32_t *dst, const uint32_t *src);
+_nettle_aes_invert(unsigned rounds, uint32_t *dst, const uint32_t *src);
 
 void
-_aes_encrypt(unsigned rounds, const uint32_t *keys,
-	     const struct aes_table *T,
-	     size_t length, uint8_t *dst,
-	     const uint8_t *src);
+_nettle_aes_encrypt(unsigned rounds, const uint32_t *keys,
+		    const struct aes_table *T,
+		    size_t length, uint8_t *dst,
+		    const uint8_t *src);
 
 void
-_aes_decrypt(unsigned rounds, const uint32_t *keys,
-	     const struct aes_table *T,
-	     size_t length, uint8_t *dst,
-	     const uint8_t *src);
+_nettle_aes_decrypt(unsigned rounds, const uint32_t *keys,
+		    const struct aes_table *T,
+		    size_t length, uint8_t *dst,
+		    const uint8_t *src);
 
 /* Macros */
 /* Get the byte with index 0, 1, 2 and 3 */
@@ -105,7 +98,7 @@ _aes_decrypt(unsigned rounds, const uint32_t *keys,
      
 /* Globally visible so that the same sbox table can be used by aes_set_encrypt_key */
 
-extern const struct aes_table _aes_encrypt_table;
-#define aes_sbox (_aes_encrypt_table.sbox)
+extern const struct aes_table _nettle_aes_encrypt_table;
+#define aes_sbox (_nettle_aes_encrypt_table.sbox)
 
 #endif /* NETTLE_AES_INTERNAL_H_INCLUDED */
diff --git a/aes-invert-internal.c b/aes-invert-internal.c
index ddcddbab8a22f44bd3214a123b886790b61ad80a..a2faefa4d0262f7c2ed3581f7f2b8889f0d37796 100644
--- a/aes-invert-internal.c
+++ b/aes-invert-internal.c
@@ -132,7 +132,7 @@ static const uint32_t mtable[0x100] =
 do { uint32_t t_swap = (a); (a) = (b); (b) = t_swap; } while(0)
 
 void
-_aes_invert(unsigned rounds, uint32_t *dst, const uint32_t *src)
+_nettle_aes_invert(unsigned rounds, uint32_t *dst, const uint32_t *src)
 {
   unsigned i;
 
diff --git a/aes-set-key-internal.c b/aes-set-key-internal.c
index 88728d85499d0a60a648eac4065a90d05c48a117..80accbf95b8177d92a18fda177b1f5caf78ccf30 100644
--- a/aes-set-key-internal.c
+++ b/aes-set-key-internal.c
@@ -43,8 +43,8 @@
 #include "macros.h"
 
 void
-_aes_set_key(unsigned nr, unsigned nk,
-	     uint32_t *subkeys, const uint8_t *key)
+_nettle_aes_set_key(unsigned nr, unsigned nk,
+		    uint32_t *subkeys, const uint8_t *key)
 {
   static const uint8_t rcon[10] = {
     0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36,
diff --git a/aes128-set-decrypt-key.c b/aes128-set-decrypt-key.c
index db0b2590e27f591dcc46e4ff3b416ecf0afee2ed..d86d2b3494e07eb89392d478b713428b82fe29a5 100644
--- a/aes128-set-decrypt-key.c
+++ b/aes128-set-decrypt-key.c
@@ -43,7 +43,7 @@
 void
 aes128_invert_key (struct aes128_ctx *dst, const struct aes128_ctx *src)
 {
-  _aes_invert (_AES128_ROUNDS, dst->keys, src->keys); 
+  _nettle_aes_invert (_AES128_ROUNDS, dst->keys, src->keys);
 }
 
 void
diff --git a/aes128-set-encrypt-key.c b/aes128-set-encrypt-key.c
index 870f2637e742cfa1221b582320df7f0a096ee35e..58f91857a8fa3999452af545487a789b8fec37b0 100644
--- a/aes128-set-encrypt-key.c
+++ b/aes128-set-encrypt-key.c
@@ -40,5 +40,5 @@
 void
 aes128_set_encrypt_key(struct aes128_ctx *ctx, const uint8_t *key)
 {
-  _aes_set_key (_AES128_ROUNDS, AES128_KEY_SIZE / 4, ctx->keys, key);
+  _nettle_aes_set_key (_AES128_ROUNDS, AES128_KEY_SIZE / 4, ctx->keys, key);
 }
diff --git a/aes192-set-decrypt-key.c b/aes192-set-decrypt-key.c
index 8ce5ead98ab4feaf5c84382051a66ea3184ea36d..ace7282c3c067247c25c0cec25cd13b493853796 100644
--- a/aes192-set-decrypt-key.c
+++ b/aes192-set-decrypt-key.c
@@ -41,7 +41,7 @@
 void
 aes192_invert_key (struct aes192_ctx *dst, const struct aes192_ctx *src)
 {
-  _aes_invert (_AES192_ROUNDS, dst->keys, src->keys); 
+  _nettle_aes_invert (_AES192_ROUNDS, dst->keys, src->keys);
 }
 
 void
diff --git a/aes192-set-encrypt-key.c b/aes192-set-encrypt-key.c
index 8faa6c8517d36d83845ae7c942be13ac9080acf1..5e9c4176796c4bf413fa82b14b1a41a4e94baadf 100644
--- a/aes192-set-encrypt-key.c
+++ b/aes192-set-encrypt-key.c
@@ -40,5 +40,5 @@
 void
 aes192_set_encrypt_key(struct aes192_ctx *ctx, const uint8_t *key)
 {
-  _aes_set_key (_AES192_ROUNDS, AES192_KEY_SIZE / 4, ctx->keys, key);
+  _nettle_aes_set_key (_AES192_ROUNDS, AES192_KEY_SIZE / 4, ctx->keys, key);
 }
diff --git a/aes256-set-decrypt-key.c b/aes256-set-decrypt-key.c
index 452794c40dfb3e591106c97bd9098cde108051b6..884c21af6cc4c441262f17efc9c00bef20fc0096 100644
--- a/aes256-set-decrypt-key.c
+++ b/aes256-set-decrypt-key.c
@@ -41,7 +41,7 @@
 void
 aes256_invert_key (struct aes256_ctx *dst, const struct aes256_ctx *src)
 {
-  _aes_invert (_AES256_ROUNDS, dst->keys, src->keys); 
+  _nettle_aes_invert (_AES256_ROUNDS, dst->keys, src->keys);
 }
 
 void
diff --git a/aes256-set-encrypt-key.c b/aes256-set-encrypt-key.c
index bbfb57efd10599743c3b1c7fde207019ded36bec..a3bd97431aa0e00a75e0e2e68ae698abac2c5d73 100644
--- a/aes256-set-encrypt-key.c
+++ b/aes256-set-encrypt-key.c
@@ -40,5 +40,5 @@
 void
 aes256_set_encrypt_key(struct aes256_ctx *ctx, const uint8_t *key)
 {
-  _aes_set_key (_AES256_ROUNDS, AES256_KEY_SIZE / 4, ctx->keys, key);
+  _nettle_aes_set_key (_AES256_ROUNDS, AES256_KEY_SIZE / 4, ctx->keys, key);
 }