diff --git a/ChangeLog b/ChangeLog
index dd3c045c067b5c16b1040da05c4f5ef065ee91e1..c7177074ab5f4437c67008ed62100f182e83a1bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2014-07-11  Niels Möller  <nisse@lysator.liu.se>
 
+	* ecc-internal.h (struct ecc_curve): New constant edwards_root.
+	* ecc-192.c (nettle_secp_192r1): Updated accordingly, additional
+	NULL pointer.
+	* ecc-224.c (nettle_secp_224r1): Likewise.
+	* ecc-256.c (nettle_secp_256r1): Likewise.
+	* ecc-384.c (nettle_secp_384r1): Likewise.
+	* ecc-521.c (nettle_secp_521r1): Likewise.
+	* ecc-25519.c (nettle_curve25519): Initialize new constant.
+
 	* eccdata.c (ecc_curve_init): For curve 25519, use correct
 	constant for edwards coordinate transform, and output the constant
 	as ecc_edwards.
diff --git a/ecc-192.c b/ecc-192.c
index 2af501fa32503bc690d92c602dfbe41ad88d1196..ee898b11fd01bd8a1149ac77da3fab7c926f2598 100644
--- a/ecc-192.c
+++ b/ecc-192.c
@@ -122,6 +122,7 @@ const struct ecc_curve nettle_secp_192r1 =
   ecc_q,
   ecc_g,
   ecc_redc_g,
+  NULL,
   ecc_192_modp,
   ecc_generic_redc,
   ecc_192_modp,
diff --git a/ecc-224.c b/ecc-224.c
index 6ed2365b1e75947065272775389d1b46c8c99599..15abb2480c31ce7d72c9180d0fbcf5fb58ce4035 100644
--- a/ecc-224.c
+++ b/ecc-224.c
@@ -68,6 +68,7 @@ const struct ecc_curve nettle_secp_224r1 =
   ecc_q,
   ecc_g,
   ecc_redc_g,
+  NULL,
   ecc_224_modp,
   ecc_generic_redc,
   USE_REDC ? ecc_generic_redc : ecc_224_modp,
diff --git a/ecc-25519.c b/ecc-25519.c
index 890fbe592a41db960cee123dbf03bcf57ac9b37f..25eeed9901779e6c3865399541b7552064373677 100644
--- a/ecc-25519.c
+++ b/ecc-25519.c
@@ -75,6 +75,7 @@ const struct ecc_curve nettle_curve25519 =
   ecc_q,
   ecc_g,
   ecc_redc_g,
+  ecc_edwards,
   ecc_25519_modp,
   NULL,
   ecc_25519_modp,
diff --git a/ecc-256.c b/ecc-256.c
index 2f2297e67c4d6d20c6958983d6e04e2d0c4e15f1..506c9afad7c8bb3a6c62434aae6b895e3ab36097 100644
--- a/ecc-256.c
+++ b/ecc-256.c
@@ -233,6 +233,7 @@ const struct ecc_curve nettle_secp_256r1 =
   ecc_q,
   ecc_g,
   ecc_redc_g,
+  NULL,
   ecc_256_modp,
   ecc_256_redc,
   USE_REDC ? ecc_256_redc : ecc_256_modp,
diff --git a/ecc-384.c b/ecc-384.c
index 8bfcb2145e6d2ca55db79d407cf4669798e9cf59..e5ec87e57489aa6227d13db0514d5b627d6e6606 100644
--- a/ecc-384.c
+++ b/ecc-384.c
@@ -161,6 +161,7 @@ const struct ecc_curve nettle_secp_384r1 =
   ecc_q,
   ecc_g,
   ecc_redc_g,
+  NULL,
   ecc_384_modp,
   ECC_REDC_SIZE != 0 ? ecc_generic_redc : NULL,
   ecc_384_modp,
diff --git a/ecc-521.c b/ecc-521.c
index fc84dfe6501acec0c52f1d1e7252c0349a630bee..821c9645689b08366d02c7001237539d97a3fe4b 100644
--- a/ecc-521.c
+++ b/ecc-521.c
@@ -89,6 +89,7 @@ const struct ecc_curve nettle_secp_521r1 =
   ecc_q,
   ecc_g,
   ecc_redc_g,
+  NULL,
   ecc_521_modp,
   ecc_generic_redc,
   ecc_521_modp,
diff --git a/ecc-internal.h b/ecc-internal.h
index 3d284bd6a234be6577c931d9fb1f78cee94633e8..8c3b6f781f72f71a90e82d2c27796c535cc7ec7b 100644
--- a/ecc-internal.h
+++ b/ecc-internal.h
@@ -107,6 +107,9 @@ struct ecc_curve
   const mp_limb_t *g;
   /* Generator with coordinates in Montgomery form. */
   const mp_limb_t *redc_g;
+  /* If non-NULL, the constant needed for transformation to the
+     equivalent Edwards curve. */
+  const mp_limb_t *edwards_root;
 
   ecc_mod_func *modp;
   ecc_mod_func *redc;