diff --git a/ChangeLog b/ChangeLog
index f6b2808b79448cd0853a3ebe5696f7106e3f0600..59f54d5d6073aadc365d0bfa50362db7ea8c975b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-25  Niels Möller  <nisse@diamant.hack.org>
+
+	* ed25519-sha512-pubkey.c: Fix stack overwrite. The digest array
+	must have room for a complete sha512 digest.
+
 2015-03-19  Niels Möller  <nisse@diamant.hack.org>
 
 	* Makefile.in (OPT_HOGWEED_SOURCES): Deleted make variable.
diff --git a/ed25519-sha512-pubkey.c b/ed25519-sha512-pubkey.c
index 677759c38d509cb60f6f2b26ed20141790ebeae5..438446e2e69fb679c6a048bbda5068e79ad1ea60 100644
--- a/ed25519-sha512-pubkey.c
+++ b/ed25519-sha512-pubkey.c
@@ -43,7 +43,7 @@ ed25519_sha512_public_key (uint8_t *pub, const uint8_t *priv)
 {
   const struct ecc_curve *ecc = &_nettle_curve25519;
   struct sha512_ctx ctx;
-  uint8_t digest[ED25519_KEY_SIZE];
+  uint8_t digest[SHA512_DIGEST_SIZE];
   mp_size_t itch = ecc->q.size + _eddsa_public_key_itch (ecc);
   mp_limb_t *scratch = gmp_alloc_limbs (itch);