diff --git a/src/ChangeLog b/src/ChangeLog
index 84c66644..8b2064fd 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2006-06-21  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* utils.c (base64_encode): Cast void pointer to char * before
+	doing arithmetic.
+
 2006-06-20  Hrvoje Niksic  <hniksic@xemacs.org>
 
 	* utils.c (base64_encode): Made TBL const.
diff --git a/src/utils.c b/src/utils.c
index 1bda8300..8900b5b3 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -1914,7 +1914,7 @@ base64_encode (const void *data, int length, char *dest)
   };
   const unsigned char *s = data;
   /* Theoretical ANSI violation when length < 3. */
-  const unsigned char *end = data + length - 2;
+  const unsigned char *end = (const unsigned char *) data + length - 2;
   char *p = dest;
 
   /* Transform the 3x8 bits to 4x6 bits, as required by base64.  */