diff --git a/ChangeLog b/ChangeLog
index 62314bad413a4ccd82e1dc00f8a4d0cbf0874e03..36a0ba74e8159ff57be5e507afb1495187732645 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2016-08-16  Niels Möller  <nisse@lysator.liu.se>
 
+	* pgp-encode.c (write_string): New helper function, replacing...
+	(WRITE): ... deleted macro.
+
 	* examples/io.c (write_data): Renamed, and use const void * for
 	the input data. Updated all callers.
 	(write_string): ... old name.
diff --git a/pgp-encode.c b/pgp-encode.c
index 983d5a23a1743d0ce722b4bee9cb3e36ea973d40..fc78e7f66302c29f8180da91ddbad81c663f2b9a 100644
--- a/pgp-encode.c
+++ b/pgp-encode.c
@@ -339,7 +339,11 @@ pgp_crc24(unsigned length, const uint8_t *data)
 }
 
 
-#define WRITE(buffer, s) (nettle_buffer_write(buffer, strlen((s)), (s)))
+static int
+write_string (struct nettle_buffer *buffer, const char *s)
+{
+  return nettle_buffer_write(buffer, strlen((s)), (const uint8_t *) (s));
+}
 
 /* 15 base 64 groups data per line */
 #define BINARY_PER_LINE 45
@@ -357,9 +361,9 @@ pgp_armor(struct nettle_buffer *buffer,
 
   base64_encode_init(&ctx);
   
-  if (! (WRITE(buffer, "BEGIN PGP ")
-	 && WRITE(buffer, tag)
-	 && WRITE(buffer, "\nComment: Nettle\n\n")))
+  if (! (write_string(buffer, "BEGIN PGP ")
+	 && write_string(buffer, tag)
+	 && write_string(buffer, "\nComment: Nettle\n\n")))
     return 0;
 
   for (;
@@ -414,7 +418,7 @@ pgp_armor(struct nettle_buffer *buffer,
     base64_encode_group(p, crc);
   }
   
-  return (WRITE(buffer, "\nBEGIN PGP ")
-	  && WRITE(buffer, tag)
+  return (write_string(buffer, "\nBEGIN PGP ")
+	  && write_string(buffer, tag)
 	  && NETTLE_BUFFER_PUTC(buffer, '\n'));
 }