diff --git a/src/builtin.cmod b/src/builtin.cmod
index ce2f682498bc527994ad7cc0c704924760446cd2..4dafedb2a31c8b602b78909919e76c2fd37cf15b 100644
--- a/src/builtin.cmod
+++ b/src/builtin.cmod
@@ -3448,7 +3448,7 @@ PIKECLASS Buffer
     }
     memmove(p, (char*)p+len, end<<shift); // Copy NUL-termination
     if( s->flags & STRING_CLEAR_ON_EXIT)
-      guaranteed_memset((char*)p+len+(end<<shift) , 0, len );
+      guaranteed_memset(p+len+(end<<shift) , 0, len );
     s->len -= index;
 
     if(!vdiscard)
diff --git a/src/configure.in b/src/configure.in
index d805d81be695e25f4ffc10a9391ea7885bdefa92..920e990c1d83ff34758faa5d8228de0999706795 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -6972,7 +6972,7 @@ int my_socketpair(int family, int type, int protocol, int sv[2])
   int retries=0;
   ACCEPT_SIZE_T len;
 
-  memset((char *)&addr,0,sizeof(struct sockaddr_in));
+  memset(&addr,0,sizeof(struct sockaddr_in));
 
   if(socketpair_fd==-1)
   {
@@ -6982,7 +6982,7 @@ int my_socketpair(int family, int type, int protocol, int sv[2])
       return -1;
     }
 
-    memset((char *)&my_addr,0,sizeof(struct sockaddr_in));
+    memset(&my_addr,0,sizeof(struct sockaddr_in));
     my_addr.sin_family=AF_INET;
     my_addr.sin_addr.s_addr=htonl(INADDR_ANY);
     my_addr.sin_port=htons(0);
diff --git a/src/malloc.c b/src/malloc.c
index 2cec7b1062cf39383c14ffb9c3d6be3386c0cd83..74aadf170d90d6dee45bd52b28cad0bf3e12669a 100644
--- a/src/malloc.c
+++ b/src/malloc.c
@@ -3968,7 +3968,7 @@ static void** ialloc(mstate m,
   assert(!is_mmapped(p));
 
   if (opts & 0x2) {       /* optionally clear the elements */
-    memset((size_t*)mem, 0, remainder_size - SIZE_T_SIZE - array_size);
+    memset(mem, 0, remainder_size - SIZE_T_SIZE - array_size);
   }
 
   /* If not provided, allocate the pointer array as final part of chunk */