diff --git a/src/sbbs3/chksmb.c b/src/sbbs3/chksmb.c
index 811e1011494ef7d94b43f126fb1c15408266d5b9..ef2e6e0db0cf92ea69fc515ca5aebbd373e32a5b 100644
--- a/src/sbbs3/chksmb.c
+++ b/src/sbbs3/chksmb.c
@@ -55,9 +55,9 @@
 char *ultoac(ulong l, char *string)
 {
 	char str[256];
-	signed char i,j,k;
+	size_t i,j,k;
 
-	sprintf(str,"%lu",l);
+	SAFEPRINTF(str,"%lu",l);
 	i=strlen(str)-1;
 	j=i/3+1+i;
 	string[j--]=0;
diff --git a/src/sbbs3/delfiles.c b/src/sbbs3/delfiles.c
index 0d36a07990115c4cd4ee41efb59e407abd49405a..6c64f13989e4b299553bd4dfb73b2643d04066f1 100644
--- a/src/sbbs3/delfiles.c
+++ b/src/sbbs3/delfiles.c
@@ -288,7 +288,7 @@ int main(int argc, char **argv)
 			if(cfg.dir[i]->maxage && cfg.dir[i]->misc&DIR_SINCEDL && workfile.datedled
 				&& (now-workfile.datedled)/86400L>cfg.dir[i]->maxage) {
 					printf("Deleting %s (%ld days since last download)\n",fname
-						,(now-workfile.datedled)/86400L);
+						,(long)(now-workfile.datedled)/86400L);
 					getfiledat(&cfg, &workfile);
 					if(!(misc&REPORT)) {
 						removefiledat(&cfg, &workfile);
@@ -300,7 +300,7 @@ int main(int argc, char **argv)
 				&& !(workfile.datedled && cfg.dir[i]->misc&DIR_SINCEDL)
 				&& (now-workfile.dateuled)/86400L>cfg.dir[i]->maxage) {
 					printf("Deleting %s (uploaded %ld days ago)\n",fname
-						,(now-workfile.dateuled)/86400L);
+						,(long)(now-workfile.dateuled)/86400L);
 					getfiledat(&cfg, &workfile);
 					if(!(misc&REPORT)) {
 						removefiledat(&cfg, &workfile);
diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index da1f67ce8ac243f39e0f1cfac0499f01df3a546c..76ba3cc327ac425edf1d116abc2db9064d4b5510 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -50,10 +50,11 @@ int extdesclines(char *str);
 /*****************************************************************************/
 int sbbs_t::listfiles(uint dirnum, const char *filespec, int tofile, long mode)
 {
-	char	str[256],hdr[256],c,d,letter='A',*p,*datbuf,ext[513];
+	char	str[256],hdr[256],letter='A',*p,*datbuf,ext[513];
 	char 	tmp[512];
 	uchar*	ixbbuf;
 	uchar	flagprompt=0;
+	int		c, d;
 	uint	i,j;
 	int		file,found=0,lastbat=0,disp;
 	long	m=0,n,anchor=0,next,datbuflen;
@@ -669,7 +670,8 @@ bool sbbs_t::movefile(file_t* f, int newdir)
 int sbbs_t::batchflagprompt(uint dirnum, file_t* bf, uint total
 							,long totalfiles)
 {
-	char	ch,c,d,str[256],fname[128],*p,remcdt=0,remfile=0;
+	char	ch,str[256],fname[128],*p,remcdt=0,remfile=0;
+	int		c, d;
 	char 	tmp[512];
 	uint	i,j,ml=0,md=0,udir,ulib;
 	file_t	f;
diff --git a/src/sbbs3/scfglib2.c b/src/sbbs3/scfglib2.c
index 25dbd8e25da88bd2fb96cd17b9de1c7ae1b16806..066893fc73f45a8b58a64c3541f07ce9ca4a0b09 100644
--- a/src/sbbs3/scfglib2.c
+++ b/src/sbbs3/scfglib2.c
@@ -877,7 +877,7 @@ long aftol(char *str)
 /*****************************************************************************/
 char *ltoaf(long l,char *str)
 {
-	size_t	c=0;
+	int	c=0;
 
 	while(c<26) {
 		if(l&(long)(1L<<c))
diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp
index f011c7fd8f10d1993399afeb8115bdea733cb1d6..6f56754df567e12ab801a1c266b91d9a2ac46d2b 100644
--- a/src/sbbs3/str.cpp
+++ b/src/sbbs3/str.cpp
@@ -694,7 +694,8 @@ bool sbbs_t::inputnstime(time_t *dt)
 /*****************************************************************************/
 bool sbbs_t::chkpass(char *passwd, user_t* user, bool unique)
 {
-	char c,d,first[128],last[128],sysop[41],sysname[41],*p;
+	char first[128],last[128],sysop[41],sysname[41],*p;
+	int  c, d;
 	char alias[LEN_ALIAS+1], name[LEN_NAME+1], handle[LEN_HANDLE+1];
 	char pass[LEN_PASS+1];
 
diff --git a/src/sbbs3/upload.cpp b/src/sbbs3/upload.cpp
index 554708b4ba68261700425b92aefbcdac311e26bb..59fa7f6250d16240d7d8ac4dedfff0200f82950c 100644
--- a/src/sbbs3/upload.cpp
+++ b/src/sbbs3/upload.cpp
@@ -340,7 +340,7 @@ bool sbbs_t::upload(uint dirnum)
 		p=strchr(str+i,',');
 		if(p!=NULL)
 			*p=0;
-		ch=strlen(str+i);
+		ch=(char)strlen(str+i);
 		if(!stricmp(tmp+9,str+i))
 			break; 
 	}
diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp
index 387c2e3a0a65b895cc9cbe9a36c9ca5752fbb736..0428ac24a4e3faacb8f09d43fae9acac810a4fff 100644
--- a/src/sbbs3/useredit.cpp
+++ b/src/sbbs3/useredit.cpp
@@ -1072,7 +1072,7 @@ void sbbs_t::maindflts(user_t* user)
 				if(!noyes(text[NewPasswordQ])) {
 					bputs(text[CurrentPassword]);
 					console|=CON_R_ECHOX;
-					ch=getstr(str,LEN_PASS,K_UPPER);
+					ch=(char)getstr(str,LEN_PASS,K_UPPER);
 					if(sys_status&SS_ABORT)
 						break;
 					console&=~(CON_R_ECHOX|CON_L_ECHOX);
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index e6e8cd663aacabe2a50b0a94b18bad5b476c5ff5..0c1b167715b5f32614da817b56d5cc569d492f84 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -3853,7 +3853,7 @@ static BOOL fastcgi_add_param(struct fastcgi_message **msg, size_t *end, size_t
 		*end += 4;
 	}
 	else {
-		(*msg)->body[(*end)++] = namelen;
+		(*msg)->body[(*end)++] = (char)namelen;
 	}
 	if (vallen > 127) {
 		l = htonl(vallen | 0x80000000);
@@ -3861,7 +3861,7 @@ static BOOL fastcgi_add_param(struct fastcgi_message **msg, size_t *end, size_t
 		*end += 4;
 	}
 	else {
-		(*msg)->body[(*end)++] = vallen;
+		(*msg)->body[(*end)++] = (char)vallen;
 	}
 	memcpy((*msg)->body + *end, env, namelen);
 	*end += namelen;
@@ -3889,7 +3889,7 @@ static BOOL fastcgi_send_params(SOCKET sock, http_session_t *session)
 			return FALSE;
 		}
 		if (end > 32000) {
-			msg->head.len = htons(end);
+			msg->head.len = htons((uint16_t)end);
 			if (sendsocket(sock, (void *)msg, sizeof(struct fastcgi_header) + end) != (sizeof(struct fastcgi_header) + end)) {
 				lprintf(LOG_ERR, "%04d ERROR sending FastCGI params", session->socket);
 				free(msg);
@@ -3901,7 +3901,7 @@ static BOOL fastcgi_send_params(SOCKET sock, http_session_t *session)
 	}
 	strListFree(&env);
 	if (end) {
-		msg->head.len = htons(end);
+		msg->head.len = htons((uint16_t)end);
 		if (sendsocket(sock, (void *)msg, sizeof(struct fastcgi_header) + end) != (sizeof(struct fastcgi_header) + end)) {
 			lprintf(LOG_ERR, "%04d ERROR sending FastCGI params", session->socket);
 			free(msg);
@@ -3909,7 +3909,7 @@ static BOOL fastcgi_send_params(SOCKET sock, http_session_t *session)
 		}
 		end = 0;
 	}
-	msg->head.len = htons(end);
+	msg->head.len = htons((uint16_t)end);
 	if (sendsocket(sock, (void *)msg, sizeof(struct fastcgi_header) + end) != (sizeof(struct fastcgi_header) + end)) {
 		lprintf(LOG_ERR, "%04d ERROR sending FastCGI params", session->socket);
 		free(msg);
@@ -4111,7 +4111,7 @@ static int fastcgi_write_in(void *arg, char *buf, size_t bufsz)
 		chunk_size = bufsz - pos;
 		if (chunk_size > UINT16_MAX)
 			chunk_size = UINT16_MAX;
-		head.len = htons(chunk_size);
+		head.len = htons((uint16_t)chunk_size);
 		if (sendsocket(cd->sock, (void *)&head, sizeof(head)) != sizeof(head))
 			return -1;
 		if (sendsocket(cd->sock, buf+pos, chunk_size) != chunk_size)
diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp
index 6c382e12ab05a2adf113620676e780a61b15f0c9..d39167005fe39c04dc7a0c82bf75470ac6b07028 100644
--- a/src/sbbs3/writemsg.cpp
+++ b/src/sbbs3/writemsg.cpp
@@ -787,7 +787,7 @@ void sbbs_t::editor_inf(int xeditnum, const char *to, const char* from, const ch
 void sbbs_t::removeline(char *str, char *str2, char num, char skip)
 {
 	char*	buf;
-    char    slen;
+    size_t  slen;
     int     i,file;
 	long	l=0,flen;
     FILE    *stream;