diff --git a/ChangeLog b/ChangeLog
index 6f9fc780f2d55f66ac46fbfee2e67832331fffb4..d6327ab7a57a8659a8a48b9be90fae59f5bf0abe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2013-06-25  Niels Möller  <nisse@lysator.liu.se>
 
+	* tools/nettle-hash.c (digest_file): Use stack allocation for the
+	small hex output buffer.
+
 	* examples/io.c (MIN): Deleted unused macro.
 
 2013-05-21  Niels Möller  <nisse@lysator.liu.se>
diff --git a/tools/nettle-hash.c b/tools/nettle-hash.c
index 5710216e99dd53545bf3f79be654ff5c22250907..b47596901829a8e981357549d46685acd1afa3c1 100644
--- a/tools/nettle-hash.c
+++ b/tools/nettle-hash.c
@@ -108,7 +108,7 @@ digest_file(const struct nettle_hash *alg,
   else
     {
       unsigned i;
-      char *hex = xalloc(BASE16_ENCODE_LENGTH(8) + 1);
+      char hex[BASE16_ENCODE_LENGTH(8) + 1];
       for (i = 0; i + 8 < digest_length; i += 8)
 	{
 	  base16_encode_update(hex, 8, digest + i);
@@ -118,7 +118,6 @@ digest_file(const struct nettle_hash *alg,
       base16_encode_update(hex, digest_length - i, digest + i);
       hex[BASE16_ENCODE_LENGTH(digest_length - i)] = 0;
       printf("%s %s\n", hex, alg->name);
-      free(hex);
     }
   
   free(digest);