diff --git a/examples/rsa-keygen.c b/examples/rsa-keygen.c
index fc4176c3b272ad3ed97f39b3ddcfa382015da228..6b683cd3188e146b44f73c52d8deaa8bfeb15f76 100644
--- a/examples/rsa-keygen.c
+++ b/examples/rsa-keygen.c
@@ -22,9 +22,6 @@
  * MA 02111-1307, USA.
  */
 
-/* For asprintf */
-#define _GNU_SOURCE
-
 #include "buffer.h"
 #include "rsa.h"
 #include "sexp.h"
@@ -95,13 +92,16 @@ main(int argc, char **argv)
       return EXIT_FAILURE;
     }
 
-  asprintf(&pub_name, "%s.pub", priv_name);
-  if (!pub_name)
+  pub_name = malloc(strlen(priv_name) + 5);  
+
+  if (pub_name)
+    sprintf(pub_name, "%s.pub", priv_name);
+  else
     {
       werror("Memory exhausted.\n");
       return EXIT_FAILURE;
     }
-  
+
   /* NOTE: No sources */
   yarrow256_init(&yarrow, 0, NULL);