diff --git a/src/syncterm/conn.c b/src/syncterm/conn.c
index 260c7e416eee77846ca5d15901c3ac65d702b89c..0d9dd8f013435d220ec954c716eeea889b77c2e9 100644
--- a/src/syncterm/conn.c
+++ b/src/syncterm/conn.c
@@ -117,8 +117,9 @@ size_t conn_buf_free(struct conn_buffer *buf)
  * leaving them in the buffer.  Returns the number of bytes
  * copied out of the buffer
  */
-size_t conn_buf_peek(struct conn_buffer *buf, unsigned char *outbuf, size_t outlen)
+size_t conn_buf_peek(struct conn_buffer *buf, void *voutbuf, size_t outlen)
 {
+	unsigned char *outbuf = (unsigned char *)voutbuf;
 	size_t copy_bytes;
 	size_t chunk;
 
@@ -142,8 +143,9 @@ size_t conn_buf_peek(struct conn_buffer *buf, unsigned char *outbuf, size_t outl
  * removing them from the buffer.  Returns the number of
  * bytes removed from the buffer.
  */
-size_t conn_buf_get(struct conn_buffer *buf, unsigned char *outbuf, size_t outlen)
+size_t conn_buf_get(struct conn_buffer *buf, void *voutbuf, size_t outlen)
 {
+	unsigned char *outbuf = (unsigned char *)voutbuf;
 	size_t ret;
 	size_t atstart;
 
@@ -164,8 +166,9 @@ size_t conn_buf_get(struct conn_buffer *buf, unsigned char *outbuf, size_t outle
  * Places up to outlen bytes from outbuf into the buffer
  * returns the number of bytes written into the buffer
  */
-size_t conn_buf_put(struct conn_buffer *buf, const unsigned char *outbuf, size_t outlen)
+size_t conn_buf_put(struct conn_buffer *buf, const void *voutbuf, size_t outlen)
 {
+	const unsigned char *outbuf = (unsigned char *)voutbuf;
 	size_t write_bytes;
 	size_t chunk;
 
@@ -260,8 +263,9 @@ BOOL conn_connected(void)
 	return(FALSE);
 }
 
-int conn_recv_upto(char *buffer, size_t buflen, unsigned timeout)
+int conn_recv_upto(void *vbuffer, size_t buflen, unsigned timeout)
 {
+	char *buffer = (char *)vbuffer;
 	size_t	found=0;
 
 	pthread_mutex_lock(&(conn_inbuf.mutex));
@@ -272,8 +276,9 @@ int conn_recv_upto(char *buffer, size_t buflen, unsigned timeout)
 }
 
 
-int conn_recv(char *buffer, size_t buflen, unsigned timeout)
+int conn_recv(void *vbuffer, size_t buflen, unsigned timeout)
 {
+	char *buffer = (char *)vbuffer;
 	size_t found;
 
 	pthread_mutex_lock(&(conn_inbuf.mutex));
@@ -284,8 +289,9 @@ int conn_recv(char *buffer, size_t buflen, unsigned timeout)
 	return(found);
 }
 
-int conn_peek(char *buffer, size_t buflen)
+int conn_peek(void *vbuffer, size_t buflen)
 {
+	char *buffer = (char *)vbuffer;
 	size_t found;
 
 	pthread_mutex_lock(&(conn_inbuf.mutex));
@@ -296,8 +302,9 @@ int conn_peek(char *buffer, size_t buflen)
 	return(found);
 }
 
-int conn_send(char *buffer, size_t buflen, unsigned int timeout)
+int conn_send(void *vbuffer, size_t buflen, unsigned int timeout)
 {
+	char *buffer = (char *)vbuffer;
 	size_t found;
 
 	pthread_mutex_lock(&(conn_outbuf.mutex));
@@ -404,7 +411,6 @@ enum failure_reason {
 int conn_socket_connect(struct bbslist *bbs)
 {
 	SOCKET			sock=INVALID_SOCKET;
-	char			*p;
 	int				nonblock;
 	struct timeval	tv;
 	fd_set			wfd;
diff --git a/src/syncterm/conn.h b/src/syncterm/conn.h
index 2d1bba5c022807737f08bd8a797bd58474b18280..188825940204a2320e026822fccd910aa16a526f 100644
--- a/src/syncterm/conn.h
+++ b/src/syncterm/conn.h
@@ -57,10 +57,10 @@ struct conn_buffer {
 /*
  * Functions for stuff using connections
  */
-int conn_recv_upto(char *buffer, size_t buflen, unsigned int timeout);
-int conn_recv(char *buffer, size_t buflen, unsigned int timeout);
-int conn_peek(char *buffer, size_t buflen);
-int conn_send(char *buffer, size_t buflen, unsigned int timeout);
+int conn_recv_upto(void *buffer, size_t buflen, unsigned int timeout);
+int conn_recv(void *buffer, size_t buflen, unsigned int timeout);
+int conn_peek(void *buffer, size_t buflen);
+int conn_send(void *buffer, size_t buflen, unsigned int timeout);
 int conn_connect(struct bbslist *bbs);
 int conn_close(void);
 BOOL conn_connected(void);
@@ -81,9 +81,9 @@ extern struct conn_api conn_api;
 struct conn_buffer *create_conn_buf(struct conn_buffer *buf, size_t size);
 void destroy_conn_buf(struct conn_buffer *buf);
 size_t conn_buf_bytes(struct conn_buffer *buf);
-size_t conn_buf_peek(struct conn_buffer *buf, unsigned char *outbuf, size_t outlen);
-size_t conn_buf_get(struct conn_buffer *buf, unsigned char *outbuf, size_t outlen);
-size_t conn_buf_put(struct conn_buffer *buf, const unsigned char *outbuf, size_t outlen);
+size_t conn_buf_peek(struct conn_buffer *buf, void *voutbuf, size_t outlen);
+size_t conn_buf_get(struct conn_buffer *buf, void *outbuf, size_t outlen);
+size_t conn_buf_put(struct conn_buffer *buf, const void *outbuf, size_t outlen);
 size_t conn_buf_wait_cond(struct conn_buffer *buf, size_t bcount, unsigned long timeout, int do_free);
 #define conn_buf_wait_bytes(buf, count, timeout)	conn_buf_wait_cond(buf, count, timeout, 0)
 #define conn_buf_wait_free(buf, count, timeout)	conn_buf_wait_cond(buf, count, timeout, 1)