diff --git a/src/conio/ansi_cio.c b/src/conio/ansi_cio.c
index aad393d5b47352c6bc15823876d89cc71864adbc..4b38bf2f372050c20be8188b3e5ec382c7a015c7 100644
--- a/src/conio/ansi_cio.c
+++ b/src/conio/ansi_cio.c
@@ -56,9 +56,9 @@
 
 int	CIOLIB_ANSI_TIMEOUT=500;
 int  (*ciolib_ansi_readbyte_cb)(void)=ansi_readbyte_cb;
-int  (*ciolib_ansi_writebyte_cb)(unsigned char ch)=ansi_writebyte_cb;
+int  (*ciolib_ansi_writebyte_cb)(const unsigned char ch)=ansi_writebyte_cb;
 int  (*ciolib_ansi_initio_cb)(void)=ansi_initio_cb;
-int  (*ciolib_ansi_writestr_cb)(unsigned char *str, size_t len)=ansi_writestr_cb;
+int  (*ciolib_ansi_writestr_cb)(const unsigned char *str, size_t len)=ansi_writestr_cb;
 
 static sem_t	got_key;
 static sem_t	got_input;
@@ -226,7 +226,7 @@ static void ansi_sendch(char ch)
 	}
 }
 
-static void ansi_sendstr(char *str,int len)
+static void ansi_sendstr(const char *str,int len)
 {
 	if(len==-1)
 		len=strlen(str);
@@ -914,12 +914,12 @@ int ansi_readbyte_cb(void)
 	return(ch);
 }
 
-int ansi_writebyte_cb(unsigned char ch)
+int ansi_writebyte_cb(const unsigned char ch)
 {
 	return(fwrite(&ch,1,1,stdout));
 }
 
-int ansi_writestr_cb(unsigned char *str, size_t len)
+int ansi_writestr_cb(const unsigned char *str, size_t len)
 {
 	return(fwrite(str,len,1,stdout));
 }
diff --git a/src/conio/ansi_cio.h b/src/conio/ansi_cio.h
index 0b4ff8da906cabece4b8caec2f4fc0117b22db82..f49f124c21fe36fa701ddcf4ed2450bebde41e00 100644
--- a/src/conio/ansi_cio.h
+++ b/src/conio/ansi_cio.h
@@ -45,14 +45,14 @@ extern "C" {
 #endif
 extern int	CIOLIB_ANSI_TIMEOUT;
 extern int  (*ciolib_ansi_readbyte_cb)(void);
-extern int  (*ciolib_ansi_writebyte_cb)(unsigned char ch);
+extern int  (*ciolib_ansi_writebyte_cb)(const unsigned char ch);
 extern int  (*ciolib_ansi_initio_cb)(void);
-extern int  (*ciolib_ansi_writestr_cb)(unsigned char *str, size_t len);
+extern int  (*ciolib_ansi_writestr_cb)(const unsigned char *str, size_t len);
 
 int ansi_readbyte_cb(void);
-int ansi_writebyte_cb(unsigned char ch);
+int ansi_writebyte_cb(const unsigned char ch);
 int ansi_initio_cb(void);
-int ansi_writestr_cb(unsigned char *str, size_t len);
+int ansi_writestr_cb(const unsigned char *str, size_t len);
 
 int ansi_puttext(int sx, int sy, int ex, int ey, void *fill);
 int ansi_gettext(int sx, int sy, int ex, int ey, void *fill);
diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 7059e30dff626ca8fc81aacb15419d2a415b022f..640225a6bd58521a7a607db637e1d2e482f0c5e4 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -1346,7 +1346,7 @@ void ctputs(char *buf)
 	_wscroll=oldscroll;
 }
 
-char *cterm_write(unsigned char *buf, int buflen, char *retbuf, size_t retsize, int *speed)
+char *cterm_write(const unsigned char *buf, int buflen, char *retbuf, size_t retsize, int *speed)
 {
 	unsigned char ch[2];
 	unsigned char prn[BUFSIZE];
diff --git a/src/conio/cterm.h b/src/conio/cterm.h
index b779345f9be80f66f8259fb8da7b681e88a7003d..74ffe6891bf7fda472aaf87f8addef3f327eb307 100644
--- a/src/conio/cterm.h
+++ b/src/conio/cterm.h
@@ -108,7 +108,7 @@ extern "C" {
 extern struct cterminal cterm;
 
 void cterm_init(int height, int width, int xpos, int ypos, int backlines, unsigned char *scrollback, int emulation);
-char *cterm_write(unsigned char *buf, int buflen, char *retbuf, size_t retsize, int *speed);
+char *cterm_write(const unsigned char *buf, int buflen, char *retbuf, size_t retsize, int *speed);
 int cterm_openlog(char *logfile, int logtype);
 void cterm_closelog(void);
 void cterm_end(void);