diff --git a/ChangeLog b/ChangeLog
index a4c230b23d63f87187bc914439f9b2f4ccb1436c..ccf7009c2c8ea6a3522acd51670a9ac6c27b80b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2014-08-29  Niels Möller  <nisse@lysator.liu.se>
 
+	* examples/ecc-benchmark.c (bench_add_jjj): Renamed, to...
+	(bench_add_hhh): ... new name. Use ecc->add_hhh function pointer.
+	(bench_add_ehh): Deleted.
+	(bench_curve): Use bench_add_hhh for all curves. Use ecc->mul_itch
+	for scratch size.
+
 	Switch the curve25519 implementation to use the isomorphism to the
 	twisted Edwards curve which is used for Ed25519 signatures.
 	* eccdata.c (ecc_curve_init): Tweaked the transformation constant
diff --git a/examples/ecc-benchmark.c b/examples/ecc-benchmark.c
index 6fc4860d3659df8b453c5f9056170dffd29350e0..89ef2f54b41630351a98cc206fff8393a55ff8ff 100644
--- a/examples/ecc-benchmark.c
+++ b/examples/ecc-benchmark.c
@@ -217,10 +217,10 @@ bench_add_jja (void *p)
 }
 
 static void
-bench_add_jjj (void *p)
+bench_add_hhh (void *p)
 {
   struct ecc_ctx *ctx = (struct ecc_ctx *) p;
-  ecc_add_jjj (ctx->ecc, ctx->rp, ctx->ap, ctx->bp, ctx->tp);
+  ctx->ecc->add_hhh (ctx->ecc, ctx->rp, ctx->ap, ctx->bp, ctx->tp);
 }
 
 static void
@@ -251,13 +251,6 @@ bench_add_eh (void *p)
   ecc_add_eh (ctx->ecc, ctx->rp, ctx->ap, ctx->bp, ctx->tp);
 }
 
-static void
-bench_add_ehh (void *p)
-{
-  struct ecc_ctx *ctx = (struct ecc_ctx *) p;
-  ecc_add_ehh (ctx->ecc, ctx->rp, ctx->ap, ctx->bp, ctx->tp);
-}
-
 #if NETTLE_USE_MINI_GMP
 static void
 mpn_random (mp_limb_t *xp, mp_size_t n)
@@ -273,7 +266,7 @@ bench_curve (const struct ecc_curve *ecc)
 {
   struct ecc_ctx ctx;  
   double modp, redc, modq, modinv, modinv_gcd, modinv_powm,
-    dup_jj, add_jja, add_jjj,
+    dup_jj, add_jja, add_hhh,
     mul_g, mul_a;
 
   mp_limb_t mask;
@@ -283,7 +276,7 @@ bench_curve (const struct ecc_curve *ecc)
   ctx.rp = xalloc_limbs (3*ecc->size);
   ctx.ap = xalloc_limbs (3*ecc->size);
   ctx.bp = xalloc_limbs (3*ecc->size);
-  itch = ECC_MUL_A_ITCH (ecc->size);
+  itch = ecc->mul_itch;
 #ifdef mpn_sec_powm
   {
     mp_size_t powm_itch
@@ -326,14 +319,13 @@ bench_curve (const struct ecc_curve *ecc)
       /* For now, curve25519 is a special case */
       dup_jj = time_function (bench_dup_eh, &ctx);
       add_jja = time_function (bench_add_eh, &ctx);
-      add_jjj = time_function (bench_add_ehh, &ctx);
     }
   else
     {
       dup_jj = time_function (bench_dup_jj, &ctx);
       add_jja = time_function (bench_add_jja, &ctx);
-      add_jjj = time_function (bench_add_jjj, &ctx);
     }
+  add_hhh = time_function (bench_add_hhh, &ctx);
   mul_g = time_function (bench_mul_g, &ctx);
   mul_a = time_function (bench_mul_a, &ctx);
 
@@ -345,7 +337,7 @@ bench_curve (const struct ecc_curve *ecc)
   printf ("%4d %6.4f %6.4f %6.4f %6.2f %6.3f %6.2f %6.3f %6.3f %6.3f %6.1f %6.1f\n",
 	  ecc->bit_size, 1e6 * modp, 1e6 * redc, 1e6 * modq,
 	  1e6 * modinv, 1e6 * modinv_gcd, 1e6 * modinv_powm,
-	  1e6 * dup_jj, 1e6 * add_jja, 1e6 * add_jjj,
+	  1e6 * dup_jj, 1e6 * add_jja, 1e6 * add_hhh,
 	  1e6 * mul_g, 1e6 * mul_a);
 }
 
@@ -368,7 +360,7 @@ main (int argc UNUSED, char **argv UNUSED)
   time_init();
   printf ("%4s %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s %6s (us)\n",
 	  "size", "modp", "redc", "modq", "modinv", "mi_gcd", "mi_pow",
-	  "dup_jj", "ad_jja", "ad_jjj",
+	  "dup_jj", "ad_jja", "ad_hhh",
 	  "mul_g", "mul_a");
   for (i = 0; i < numberof (curves); i++)
     bench_curve (curves[i]);