diff --git a/ChangeLog b/ChangeLog
index 3f1f3f5b9198deca9ec1b10c34e7338558cd906c..ee82c3abe054a3b6b310bec2d1f20922aa05b8e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2014-04-16  Niels Möller  <nisse@lysator.liu.se>
 
+	* examples/eratosthenes.c (vector_alloc): Use sizeof(*vector)
+	instead of explicit type in malloc call.
+	(vector_init): Make constant explicitly unsigned long.
+
 	* tools/input.c (sexp_get_quoted_char): Deleted useless for loop.
 
 2014-04-13  Niels Möller  <nisse@lysator.liu.se>
diff --git a/examples/eratosthenes.c b/examples/eratosthenes.c
index 3e1bd39f77a1caf9298c105c9e791e389a280a79..7a54561dc297ab9b6fcdd76e502cd385c6c13d50 100644
--- a/examples/eratosthenes.c
+++ b/examples/eratosthenes.c
@@ -93,7 +93,7 @@ static unsigned long *
 vector_alloc(unsigned long size)
 {
   unsigned long end = (size + BITS_PER_LONG - 1) / BITS_PER_LONG;
-  unsigned long *vector = malloc (end * sizeof(long));
+  unsigned long *vector = malloc (end * sizeof(*vector));
 
   if (!vector)
     {
@@ -110,7 +110,7 @@ vector_init(unsigned long *vector, unsigned long size)
   unsigned long i;
 
   for (i = 0; i < end; i++)
-    vector[i] = ~0;
+    vector[i] = ~0UL;
 }
 
 static void