--- srfi-4.c.0	2006-02-27 17:21:58.000000000 -0800
+++ srfi-4.c	2006-02-27 17:45:07.000000000 -0800
@@ -899,7 +899,7 @@
 	      size_t to_copy = min (pt->read_end - pt->read_pos,
 				    remaining);
 	      
-	      memcpy (base + off, pt->read_pos, to_copy);
+	      memcpy ((char *)base + off, pt->read_pos, to_copy);
 	      pt->read_pos += to_copy;
 	      remaining -= to_copy;
 	      off += to_copy;
@@ -924,7 +924,7 @@
       int fd = scm_to_int (port_or_fd);
       int n;
 
-      SCM_SYSCALL (n = read (fd, base + off, remaining));
+      SCM_SYSCALL (n = read (fd, (char *)base + off, remaining));
       if (n == -1)
 	SCM_SYSERROR;
       if (n % sz != 0)
@@ -998,13 +998,13 @@
 
   if (SCM_NIMP (port_or_fd))
     {
-      scm_lfwrite (base + off, amount, port_or_fd);
+      scm_lfwrite ((char *)base + off, amount, port_or_fd);
       ans = cend - cstart;
     }
   else /* file descriptor.  */
     {
       int fd = scm_to_int (port_or_fd), n;
-      SCM_SYSCALL (n = write (fd, base + off, amount));
+      SCM_SYSCALL (n = write (fd, (char *)base + off, amount));
       if (n == -1)
 	SCM_SYSERROR;
       if (n % sz != 0)
