diff --git a/ChangeLog b/ChangeLog
index ee82c3abe054a3b6b310bec2d1f20922aa05b8e8..13f50a0c434fc1907724e2d942b3d34213a6d951 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2014-04-16  Niels Möller  <nisse@lysator.liu.se>
 
+	* sha3-224.c (sha3_224_init): Pass pointer to context struct, not
+	pointer to first element, to memset.
+	* sha3-256.c (sha3_256_init): Likewise.
+	* sha3-384.c (sha3_384_init): Likewise.
+	* sha3-512.c (sha3_512_init): Likewise.
+
 	* examples/eratosthenes.c (vector_alloc): Use sizeof(*vector)
 	instead of explicit type in malloc call.
 	(vector_init): Make constant explicitly unsigned long.
diff --git a/sha3-224.c b/sha3-224.c
index cea6b351da2a9950c701f438cd9c2bae5bd9bb61..b4bb23b46c6cde06bdb5e2f49e8285a0db510f50 100644
--- a/sha3-224.c
+++ b/sha3-224.c
@@ -45,7 +45,7 @@
 void
 sha3_224_init (struct sha3_224_ctx *ctx)
 {
-  memset (&ctx->state, 0, offsetof (struct sha3_224_ctx, block));
+  memset (ctx, 0, offsetof (struct sha3_224_ctx, block));
 }
 
 void
diff --git a/sha3-256.c b/sha3-256.c
index 203bfe191143c0507c9cb53bf83ae181a8716192..d0a00e2bdf1998a866fe0c5525b625ca1ef0a5d9 100644
--- a/sha3-256.c
+++ b/sha3-256.c
@@ -45,7 +45,7 @@
 void
 sha3_256_init (struct sha3_256_ctx *ctx)
 {
-  memset (&ctx->state, 0, offsetof (struct sha3_256_ctx, block));
+  memset (ctx, 0, offsetof (struct sha3_256_ctx, block));
 }
 
 void
diff --git a/sha3-384.c b/sha3-384.c
index 19e95b584627982540a7d920b5e0d4779dcc71a0..245faaed039faa20f8e97bf3cf42a018426d4b5c 100644
--- a/sha3-384.c
+++ b/sha3-384.c
@@ -45,7 +45,7 @@
 void
 sha3_384_init (struct sha3_384_ctx *ctx)
 {
-  memset (&ctx->state, 0, offsetof (struct sha3_384_ctx, block));
+  memset (ctx, 0, offsetof (struct sha3_384_ctx, block));
 }
 
 void
diff --git a/sha3-512.c b/sha3-512.c
index a71e4319ca04717b8968891fd9524c972f71f7c0..7a6de38bc3393f1dee46062c993f10a85dc1f003 100644
--- a/sha3-512.c
+++ b/sha3-512.c
@@ -45,7 +45,7 @@
 void
 sha3_512_init (struct sha3_512_ctx *ctx)
 {
-  memset (&ctx->state, 0, offsetof (struct sha3_512_ctx, block));
+  memset (ctx, 0, offsetof (struct sha3_512_ctx, block));
 }
 
 void