diff --git a/ChangeLog b/ChangeLog
index ad88ece9f0083c6e674f8546cb751dcb86ec1aa9..2f03dc47549e932b5a847a10fc3ac58e6666ce5e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-06-25  Niels Möller  <nisse@lysator.liu.se>
 
+	* pkcs1.c (_pkcs1_signature_prefix): Renamed function, adding a
+	leading underscore. Updated all callers.
+
 	* bignum-next-prime.c (nettle_next_prime): Consistently use the
 	type nettle_random_func * (rather then just nettle_random_func)
 	when passing the function pointer as argument. Similar change for
diff --git a/NEWS b/NEWS
index 0f4cb3c71ebe9cd510b14ff0b9197baec71bf27d..e612b5cd97aff681f06d31969bd51a17ee4c96a5 100644
--- a/NEWS
+++ b/NEWS
@@ -4,9 +4,11 @@ NEWS for the 2.5 release
 	and MacOS. There are also a few new features.
 	
 	* Warning: The undocumented, internal, function
-	  pkcs1_signature_prefix is changed. Since this is an internal
-	  function, this is not considered a change of ABI or API.
-	  Programs explicitly using this function will break.
+	  pkcs1_signature_prefix has been renamed to
+	  _pkcs1_signature_prefix, and with slightly different
+	  behavior. Since this is an internal function, this is not
+	  considered a change of ABI or API. Programs explicitly using
+	  this function will break.
 
 	New features:
 
diff --git a/pkcs1-rsa-digest.c b/pkcs1-rsa-digest.c
index e84db6d4cd00e6f7c646a5af4d122b932674b34a..61461cdfcf5e380b1db10e68eb8d862cc17c6712 100644
--- a/pkcs1-rsa-digest.c
+++ b/pkcs1-rsa-digest.c
@@ -38,8 +38,8 @@ pkcs1_rsa_digest_encode(mpz_t m, unsigned key_size,
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  if (pkcs1_signature_prefix(key_size, em,
-			     di_length, digest_info, 0))
+  if (_pkcs1_signature_prefix(key_size, em,
+			      di_length, digest_info, 0))
     {
       nettle_mpz_set_str_256_u(m, key_size, em);
       return 1;
diff --git a/pkcs1-rsa-md5.c b/pkcs1-rsa-md5.c
index d9259822992fd79f9d8af68ac50180acd5a37feb..16a3f4578160ab833c0badd38950326d8ed5dae2 100644
--- a/pkcs1-rsa-md5.c
+++ b/pkcs1-rsa-md5.c
@@ -68,10 +68,10 @@ pkcs1_rsa_md5_encode(mpz_t m, unsigned key_size, struct md5_ctx *hash)
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(md5_prefix),
-			     md5_prefix,
-			     MD5_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(md5_prefix),
+			      md5_prefix,
+			      MD5_DIGEST_SIZE);
   if (p)
     {
       md5_digest(hash, MD5_DIGEST_SIZE, p);
@@ -89,10 +89,10 @@ pkcs1_rsa_md5_encode_digest(mpz_t m, unsigned key_size, const uint8_t *digest)
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(md5_prefix),
-			     md5_prefix,
-			     MD5_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(md5_prefix),
+			      md5_prefix,
+			      MD5_DIGEST_SIZE);
   if (p)
     {
       memcpy(p, digest, MD5_DIGEST_SIZE);
diff --git a/pkcs1-rsa-sha1.c b/pkcs1-rsa-sha1.c
index 427a5adee75763f97148dd5e9218e2d6d2bfab83..6df6e9f0ff706fc1c2c964ce8fd5440c0d3ef7f1 100644
--- a/pkcs1-rsa-sha1.c
+++ b/pkcs1-rsa-sha1.c
@@ -68,10 +68,10 @@ pkcs1_rsa_sha1_encode(mpz_t m, unsigned key_size, struct sha1_ctx *hash)
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(sha1_prefix),
-			     sha1_prefix,
-			     SHA1_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(sha1_prefix),
+			      sha1_prefix,
+			      SHA1_DIGEST_SIZE);
   if (p)
     {
       sha1_digest(hash, SHA1_DIGEST_SIZE, p);
@@ -89,10 +89,10 @@ pkcs1_rsa_sha1_encode_digest(mpz_t m, unsigned key_size, const uint8_t *digest)
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(sha1_prefix),
-			     sha1_prefix,
-			     SHA1_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(sha1_prefix),
+			      sha1_prefix,
+			      SHA1_DIGEST_SIZE);
   if (p)
     {
       memcpy(p, digest, SHA1_DIGEST_SIZE);
diff --git a/pkcs1-rsa-sha256.c b/pkcs1-rsa-sha256.c
index e3f0797d9fcc3c8c5e921c52e4caf3974858b8f0..0d6c52c898a89ea8326ff6923ff0804ae54cd2ab 100644
--- a/pkcs1-rsa-sha256.c
+++ b/pkcs1-rsa-sha256.c
@@ -66,10 +66,10 @@ pkcs1_rsa_sha256_encode(mpz_t m, unsigned key_size, struct sha256_ctx *hash)
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(sha256_prefix),
-			     sha256_prefix,
-			     SHA256_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(sha256_prefix),
+			      sha256_prefix,
+			      SHA256_DIGEST_SIZE);
   if (p)
     {
       sha256_digest(hash, SHA256_DIGEST_SIZE, p);
@@ -87,10 +87,10 @@ pkcs1_rsa_sha256_encode_digest(mpz_t m, unsigned key_size, const uint8_t *digest
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(sha256_prefix),
-			     sha256_prefix,
-			     SHA256_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(sha256_prefix),
+			      sha256_prefix,
+			      SHA256_DIGEST_SIZE);
   if (p)
     {
       memcpy(p, digest, SHA256_DIGEST_SIZE);
diff --git a/pkcs1-rsa-sha512.c b/pkcs1-rsa-sha512.c
index ddf627691b4f4ac92505afcbf7d7abfaf396673a..767cd446edfd72ec55cef90572d21a7eb42a84b2 100644
--- a/pkcs1-rsa-sha512.c
+++ b/pkcs1-rsa-sha512.c
@@ -66,10 +66,10 @@ pkcs1_rsa_sha512_encode(mpz_t m, unsigned key_size, struct sha512_ctx *hash)
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(sha512_prefix),
-			     sha512_prefix,
-			     SHA512_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(sha512_prefix),
+			      sha512_prefix,
+			      SHA512_DIGEST_SIZE);
   if (p)
     {
       sha512_digest(hash, SHA512_DIGEST_SIZE, p);
@@ -87,10 +87,10 @@ pkcs1_rsa_sha512_encode_digest(mpz_t m, unsigned key_size, const uint8_t *digest
   TMP_DECL(em, uint8_t, NETTLE_MAX_BIGNUM_SIZE);
   TMP_ALLOC(em, key_size);
 
-  p = pkcs1_signature_prefix(key_size, em,
-			     sizeof(sha512_prefix),
-			     sha512_prefix,
-			     SHA512_DIGEST_SIZE);
+  p = _pkcs1_signature_prefix(key_size, em,
+			      sizeof(sha512_prefix),
+			      sha512_prefix,
+			      SHA512_DIGEST_SIZE);
   if (p)
     {
       memcpy(p, digest, SHA512_DIGEST_SIZE);
diff --git a/pkcs1.c b/pkcs1.c
index 4b73d35c4da9ee36f2516461255122884f03cd00..9629d7d73613daba484802bb04d0f27ee36e1d9d 100644
--- a/pkcs1.c
+++ b/pkcs1.c
@@ -40,11 +40,11 @@
  * total size equals the octet size of n.
  */
 uint8_t *
-pkcs1_signature_prefix(unsigned key_size,
-		       uint8_t *buffer,
-		       unsigned id_size,
-		       const uint8_t *id,
-		       unsigned digest_size)
+_pkcs1_signature_prefix(unsigned key_size,
+			uint8_t *buffer,
+			unsigned id_size,
+			const uint8_t *id,
+			unsigned digest_size)
 {
   unsigned j;
   
diff --git a/pkcs1.h b/pkcs1.h
index d6e60539cf89910b4d912a0a8f849123a013c3cf..49653b607a40aad058ea4efdb90115acd74d4d8e 100644
--- a/pkcs1.h
+++ b/pkcs1.h
@@ -34,7 +34,7 @@ extern "C" {
 #endif
 
 /* Name mangling */
-#define pkcs1_signature_prefix nettle_pkcs1_signature_prefix
+#define _pkcs1_signature_prefix _nettle_pkcs1_signature_prefix
 #define pkcs1_rsa_digest_encode nettle_pkcs1_rsa_digest_encode
 #define pkcs1_rsa_md5_encode nettle_pkcs1_rsa_md5_encode
 #define pkcs1_rsa_md5_encode_digest nettle_pkcs1_rsa_md5_encode_digest
@@ -53,11 +53,11 @@ struct sha256_ctx;
 struct sha512_ctx;
 
 uint8_t *
-pkcs1_signature_prefix(unsigned key_size,
-		       uint8_t *buffer,
-		       unsigned id_size,
-		       const uint8_t *id,
-		       unsigned digest_size);
+_pkcs1_signature_prefix(unsigned key_size,
+			uint8_t *buffer,
+			unsigned id_size,
+			const uint8_t *id,
+			unsigned digest_size);
 
 int
 pkcs1_encrypt (unsigned key_size,
diff --git a/testsuite/pkcs1-test.c b/testsuite/pkcs1-test.c
index a0521b031c4bcd5dfd103c6b4bbd3d5e1ad5ed24..131c0b0aa23d13c9688e2595ff882db82ab23b99 100644
--- a/testsuite/pkcs1-test.c
+++ b/testsuite/pkcs1-test.c
@@ -9,8 +9,8 @@ test_main(void)
   uint8_t expected[16] = { 0,    1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 			   0xff, 0xff, 0xff, 0xff, 0,    'a',  'b',  'c' };
 
-  pkcs1_signature_prefix(sizeof(buffer), buffer,
-			 3, "abc", 0);
+  _pkcs1_signature_prefix(sizeof(buffer), buffer,
+			  3, "abc", 0);
 
   ASSERT(MEMEQ(sizeof(buffer), buffer, expected));