diff --git a/src/sbbs3/bulkmail.cpp b/src/sbbs3/bulkmail.cpp
index dcf2497d5dc8ea8564e57e435438d3a98a085d05..489f709c6bdb65984fcae402de417fead72bedaa 100644
--- a/src/sbbs3/bulkmail.cpp
+++ b/src/sbbs3/bulkmail.cpp
@@ -183,8 +183,8 @@ void sbbs_t::bulkmail(uchar *ar)
 		errormsg(WHERE,ERR_WRITE,smb.file,x);
 		return; }
 
-	putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10));
-	putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+	putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10));
+	putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 }
 
 
diff --git a/src/sbbs3/chat.cpp b/src/sbbs3/chat.cpp
index 0cb81876c0aa7c795c5ab4865a3c117c8f061d67..a001ffe325e615af8772c8c85f0f1f0f039a9c13 100644
--- a/src/sbbs3/chat.cpp
+++ b/src/sbbs3/chat.cpp
@@ -71,7 +71,7 @@ void sbbs_t::chatsection()
 			case 'S':
 				useron.chat^=CHAT_SPLITP;
 				putuserrec(&cfg,useron.number,U_CHAT,8
-					,ltoa(useron.chat,str,16));
+					,ultoa(useron.chat,str,16));
 				bprintf("\r\nPrivate split-screen chat is now: %s\r\n"
 					,useron.chat&CHAT_SPLITP ? text[ON]:text[OFF]);
 				break;
@@ -79,7 +79,7 @@ void sbbs_t::chatsection()
 				CRLF;
 				useron.chat^=CHAT_NOACT;
 				putuserrec(&cfg,useron.number,U_CHAT,8
-					,ltoa(useron.chat,str,16));
+					,ultoa(useron.chat,str,16));
 				getnodedat(cfg.node_num,&thisnode,1);
 				thisnode.misc^=NODE_AOFF;
 				printnodedat(cfg.node_num,&thisnode);
@@ -90,7 +90,7 @@ void sbbs_t::chatsection()
 				CRLF;
 				useron.chat^=CHAT_NOPAGE;
 				putuserrec(&cfg,useron.number,U_CHAT,8
-					,ltoa(useron.chat,str,16));
+					,ultoa(useron.chat,str,16));
 				getnodedat(cfg.node_num,&thisnode,1);
 				thisnode.misc^=NODE_POFF;
 				printnodedat(cfg.node_num,&thisnode);
@@ -312,7 +312,7 @@ void sbbs_t::chatsection()
 										,useron.chat&CHAT_ACTION
 										? text[ON]:text[OFF]);
 									putuserrec(&cfg,useron.number,U_CHAT,8
-										,ltoa(useron.chat,str,16));
+										,ultoa(useron.chat,str,16));
 									break;
 								case 'C':   /* List of action commands */
 									CRLF;
@@ -334,7 +334,7 @@ void sbbs_t::chatsection()
 										,useron.chat&CHAT_ECHO
 										? text[ON]:text[OFF]);
 									putuserrec(&cfg,useron.number,U_CHAT,8
-										,ltoa(useron.chat,str,16));
+										,ultoa(useron.chat,str,16));
 									break;
 								case 'L':	/* list nodes */
 									CRLF;
@@ -1410,7 +1410,7 @@ void sbbs_t::guruchat(char *line, char *gurubuf, int gurunum)
 							break;
 						case 'L':
                     		if(sys_status&SS_USERON)
-								strcat(theanswer,itoa(useron.level,tmp,10));
+								strcat(theanswer,ultoa(useron.level,tmp,10));
 							else
 								strcat(theanswer,"0");
 							break;
@@ -1476,7 +1476,7 @@ void sbbs_t::guruchat(char *line, char *gurubuf, int gurunum)
 							break;
 						case '#':
                     		if(sys_status&SS_USERON)
-								strcat(theanswer,itoa(getage(&cfg,useron.birth)
+								strcat(theanswer,ultoa(getage(&cfg,useron.birth)
 									,tmp,10));
 							else
 								strcat(theanswer,"0");
diff --git a/src/sbbs3/data.cpp b/src/sbbs3/data.cpp
index 0ee995b10da8e54487e157cb6a2d0cd7d237ca27..702e388675316317bd00cba9a8014ef44f7e7209 100644
--- a/src/sbbs3/data.cpp
+++ b/src/sbbs3/data.cpp
@@ -299,7 +299,7 @@ void sbbs_t::gettimeleft(void)
 				useron.exempt&=~cfg.expired_exempt;
 				useron.rest|=cfg.expired_rest;
 				useron.expire=0; }
-			putuserrec(&cfg,useron.number,U_LEVEL,2,itoa(useron.level,str,10));
+			putuserrec(&cfg,useron.number,U_LEVEL,2,ultoa(useron.level,str,10));
 			putuserrec(&cfg,useron.number,U_FLAGS1,8,ultoa(useron.flags1,str,16));
 			putuserrec(&cfg,useron.number,U_FLAGS2,8,ultoa(useron.flags2,str,16));
 			putuserrec(&cfg,useron.number,U_FLAGS3,8,ultoa(useron.flags3,str,16));
diff --git a/src/sbbs3/data_ovl.cpp b/src/sbbs3/data_ovl.cpp
index 6523dc37aa3c9cfeed84c89d3cf10d453ee9c737..28b615810f9c2d09bb623b77c1ceae3c1b8eb0ec 100644
--- a/src/sbbs3/data_ovl.cpp
+++ b/src/sbbs3/data_ovl.cpp
@@ -61,7 +61,7 @@ void sbbs_t::putusername(int number, char *name)
 		return; }
 	if(length<(((long)number-1)*(LEN_ALIAS+2))) {
 		sprintf(str,"%*s",LEN_ALIAS,nulstr);
-		strset(str,ETX);
+		memset(str,ETX,LEN_ALIAS);
 		strcat(str,crlf);
 		lseek(file,0L,SEEK_END);
 		while(filelength(file)<((long)number*(LEN_ALIAS+2)))
diff --git a/src/sbbs3/download.cpp b/src/sbbs3/download.cpp
index 32b0d348699b0f6d6d86a2022937f2907c89da62..c13280ab7d4e27cc2a4486bf6d3a7fc91db560b7 100644
--- a/src/sbbs3/download.cpp
+++ b/src/sbbs3/download.cpp
@@ -221,7 +221,7 @@ void sbbs_t::autohangup()
 	for(c=9,a=0;c>-1 && online && !a;c--) {
 		checkline();
 		attr(LIGHTGRAY|HIGH);
-		bputs(itoa(c,tmp,10));
+		bputs(ultoa(c,tmp,10));
 		attr(GREEN);
 		outchar(']');
 		while((k=inkey(0))!=0 && online) {
diff --git a/src/sbbs3/email.cpp b/src/sbbs3/email.cpp
index 20174fc14b84e9f1a4cb36af71e80fcbb24e3b45..0f57977232e465a407700f794ee07b202e1242f9 100644
--- a/src/sbbs3/email.cpp
+++ b/src/sbbs3/email.cpp
@@ -286,13 +286,13 @@ bool sbbs_t::email(int usernumber, char *top, char *subj, long mode)
 	if(usernumber==1) {
 		useron.fbacks++;
 		logon_fbacks++;
-		putuserrec(&cfg,useron.number,U_FBACKS,5,itoa(useron.fbacks,tmp,10)); }
+		putuserrec(&cfg,useron.number,U_FBACKS,5,ultoa(useron.fbacks,tmp,10)); }
 	else {
 		useron.emails++;
 		logon_emails++;
-		putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10)); }
+		putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10)); }
 	useron.etoday++;
-	putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+	putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 	bprintf(text[Emailed],username(&cfg,usernumber,tmp),usernumber);
 	sprintf(str,"E-mailed %s #%d",username(&cfg,usernumber,tmp),usernumber);
 	logline("E+",str);
diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index a6ec829701dfc20aa933963de2890e832c79ae48..5ff81259c513e77b449cce17c6d86eed78844351 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -1203,7 +1203,7 @@ int sbbs_t::exec(csi_t *csi)
 				return(0);
 			case CS_SET_USER_LEVEL:
 				useron.level=*(csi->ip++);
-				putuserrec(&cfg,useron.number,U_LEVEL,2,itoa(useron.level,tmp,10));
+				putuserrec(&cfg,useron.number,U_LEVEL,2,ultoa(useron.level,tmp,10));
 				return(0);
 			case CS_SET_USER_STRING:
 				csi->logic=LOGIC_FALSE;
diff --git a/src/sbbs3/fido.cpp b/src/sbbs3/fido.cpp
index d51f18826e2a4bdd8d15ee9ad8db22f1c8e92ee5..648a57f811150608f81aa8905a81b9b700c65b5a 100644
--- a/src/sbbs3/fido.cpp
+++ b/src/sbbs3/fido.cpp
@@ -333,9 +333,9 @@ bool sbbs_t::netmail(char *into, char *title, long mode)
 
 		useron.emails++;
 		logon_emails++;
-		putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10)); 
+		putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10)); 
 		useron.etoday++;
-		putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+		putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 
 		if(!(useron.exempt&FLAG('S')))
 			subtract_cdt(&cfg,&useron,cfg.netmail_cost);
@@ -695,9 +695,9 @@ void sbbs_t::qwktonetmail(FILE *rep, char *block, char *into, uchar fromhub)
 
 			useron.emails++;
 			logon_emails++;
-			putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10)); 
+			putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10)); 
 			useron.etoday++;
-			putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+			putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 
 			sprintf(str,"Sent %s NetMail to %s (%s) via QWK"
 				,qnet ? "QWK":"Internet",name,qnet ? fulladdr : to);
@@ -851,9 +851,9 @@ void sbbs_t::qwktonetmail(FILE *rep, char *block, char *into, uchar fromhub)
 
 	useron.emails++;
 	logon_emails++;
-	putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10)); 
+	putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10)); 
 	useron.etoday++;
-	putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+	putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 
 	sprintf(str,"Sent NetMail to %s @%s via QWK",hdr.to,faddrtoa(fidoaddr));
 	logline("EN",str);
diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp
index 66bd282192b5956454bd74e761ec5d5415db7076..128869a6035e50542aa4a51e02bbf929e69caf75 100644
--- a/src/sbbs3/file.cpp
+++ b/src/sbbs3/file.cpp
@@ -141,7 +141,7 @@ void sbbs_t::openfile(file_t* f)
 		errormsg(WHERE,ERR_READ,str1,3);
 		return; }
 	str2[3]=0;
-	itoa(atoi(str2)+1,str3,10);
+	ultoa(atoi(str2)+1,str3,10);
 	putrec(str2,0,3,str3);
 	lseek(file,f->datoffset+F_OPENCOUNT,SEEK_SET);
 	if(write(file,str2,3)!=3) {
@@ -189,7 +189,7 @@ void sbbs_t::closefile(file_t* f)
 	str2[3]=0;
 	ch=atoi(str2);
 	if(ch) ch--;
-	itoa(ch,str3,10);
+	ultoa(ch,str3,10);
 	putrec(str2,0,3,str3);
 	lseek(file,f->datoffset+F_OPENCOUNT,SEEK_SET);
 	if(write(file,str2,3)!=3) {
diff --git a/src/sbbs3/filedat.c b/src/sbbs3/filedat.c
index 0078b00a89b73cd03a4c1042657a8c8cb08b2365..f989fd84ba06e3867468e994b07f2784bec1c444 100644
--- a/src/sbbs3/filedat.c
+++ b/src/sbbs3/filedat.c
@@ -125,9 +125,9 @@ BOOL DLLCALL putfiledat(scfg_t* cfg, file_t* f)
 	putrec(buf,F_DESC+LEN_FDESC,2,crlf);
 	putrec(buf,F_ULER,LEN_ALIAS+5,f->uler);
 	putrec(buf,F_ULER+LEN_ALIAS+5,2,crlf);
-	putrec(buf,F_TIMESDLED,5,itoa(f->timesdled,tmp,10));
+	putrec(buf,F_TIMESDLED,5,ultoa(f->timesdled,tmp,10));
 	putrec(buf,F_TIMESDLED+5,2,crlf);
-	putrec(buf,F_OPENCOUNT,3,itoa(f->opencount,tmp,10));
+	putrec(buf,F_OPENCOUNT,3,ultoa(f->opencount,tmp,10));
 	putrec(buf,F_OPENCOUNT+3,2,crlf);
 	buf[F_MISC]=f->misc+SP;
 	putrec(buf,F_ALTPATH,2,hexplus(f->altpath,tmp));
@@ -218,7 +218,7 @@ BOOL DLLCALL addfiledat(scfg_t* cfg, file_t* f)
 	putrec(fdat,F_ULER+LEN_ALIAS+5,2,crlf);
 	putrec(fdat,F_TIMESDLED,5,ultoa(f->timesdled,tmp,10));
 	putrec(fdat,F_TIMESDLED+5,2,crlf);
-	putrec(fdat,F_OPENCOUNT,3,itoa(f->opencount,tmp,10));
+	putrec(fdat,F_OPENCOUNT,3,ultoa(f->opencount,tmp,10));
 	putrec(fdat,F_OPENCOUNT+3,2,crlf);
 	fdat[F_MISC]=f->misc+SP;
 	putrec(fdat,F_ALTPATH,2,hexplus(f->altpath,tmp));
diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index ab1b766abce968e9d329ea7be44dc3282c9c0f82..2d182550c7cb47e233b34391e9653e4c93d610df 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -1507,7 +1507,7 @@ static void ctrl_thread(void* arg)
 
 			/* Adjust User Total Logons/Logons Today */
 			adjustuserrec(&scfg,user.number,U_LOGONS,5,1);
-			putuserrec(&scfg,user.number,U_LTODAY,5,itoa(user.ltoday+1,str,10));
+			putuserrec(&scfg,user.number,U_LTODAY,5,ultoa(user.ltoday+1,str,10));
 			continue;
 		}
 
@@ -2846,7 +2846,7 @@ static void ctrl_thread(void* arg)
 	if(user.number) {
 		user.tlast=(ushort)(time(NULL)-logintime);
 		putuserrec(&scfg,user.number,U_LASTON,8,ultoa(time(NULL),str,16));
-		putuserrec(&scfg,user.number,U_TLAST,5,itoa(user.tlast,str,10));
+		putuserrec(&scfg,user.number,U_TLAST,5,ultoa(user.tlast,str,10));
 		adjustuserrec(&scfg,user.number,U_TIMEON,5,user.tlast);
 	}
 
diff --git a/src/sbbs3/getnode.cpp b/src/sbbs3/getnode.cpp
index 0ca0d9c1709e7b7311e09225ab47b0f837422d01..1c9110196c8dc242c9b4c816f4efbb924a01d8ed 100644
--- a/src/sbbs3/getnode.cpp
+++ b/src/sbbs3/getnode.cpp
@@ -468,7 +468,7 @@ void sbbs_t::printnodedat(uint number, node_t* node)
 					bputs("performing sysop activities");
 					break;
 				default:
-					bputs(itoa(node->action,tmp,10));
+					bputs(ultoa(node->action,tmp,10));
 					break;  }
 			if(!node->connection)
 				bputs(" locally");
diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index 3700757df3916546d0a98a7e517903f3d9bc002b..f0c91076e08841cc17f5fa1ccb7df575be0433c8 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -256,7 +256,7 @@ int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode)
 				if(tofile) {
 					write(tofile,crlf,2);
 					sprintf(hdr,"%*s",c,nulstr);
-					strset(hdr,'�');
+					memset(hdr,'�',c);
 					strcat(hdr,crlf);
 					write(tofile,hdr,strlen(hdr)); }
 				else {
@@ -991,17 +991,17 @@ int sbbs_t::listfileinfo(uint dirnum, char *filespec, long mode)
 					bputs(text[EditCreditValue]);
 					getstr(str,7,K_NUMBER|K_EDIT|K_AUTODEL);
 					f.cdt=atol(str);
-					itoa(f.timesdled,str,10);
+					ultoa(f.timesdled,str,10);
 					bputs(text[EditTimesDownloaded]);
 					getstr(str,5,K_NUMBER|K_EDIT|K_AUTODEL);
 					f.timesdled=atoi(str);
 					if(f.opencount) {
-						itoa(f.opencount,str,10);
+						ultoa(f.opencount,str,10);
 						bputs(text[EditOpenCount]);
 						getstr(str,3,K_NUMBER|K_EDIT|K_AUTODEL);
 						f.opencount=atoi(str); }
 					if(cfg.altpaths || f.altpath) {
-						itoa(f.altpath,str,10);
+						ultoa(f.altpath,str,10);
 						bputs(text[EditAltPath]);
 						getstr(str,3,K_NUMBER|K_EDIT|K_AUTODEL);
 						f.altpath=atoi(str);
diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp
index 36105bf5bcf168e5b01584cd1658f44200cc3494..38b4d5ccd8db91e41bb18b31157f4e2c71b68347 100644
--- a/src/sbbs3/logout.cpp
+++ b/src/sbbs3/logout.cpp
@@ -178,10 +178,10 @@ void sbbs_t::logout()
 
 	putuserrec(&cfg,useron.number,U_NS_TIME,8,ultoa(last_ns_time,str,16));
 	putuserrec(&cfg,useron.number,U_LASTON,8,ultoa(useron.laston,str,16));
-	putuserrec(&cfg,useron.number,U_TIMEON,5,itoa(useron.timeon,str,10));
-	putuserrec(&cfg,useron.number,U_TTODAY,5,itoa(useron.ttoday,str,10));
-	putuserrec(&cfg,useron.number,U_TEXTRA,5,itoa(useron.textra,str,10));
-	putuserrec(&cfg,useron.number,U_TLAST,5,itoa(useron.tlast,str,10));
+	putuserrec(&cfg,useron.number,U_TIMEON,5,ultoa(useron.timeon,str,10));
+	putuserrec(&cfg,useron.number,U_TTODAY,5,ultoa(useron.ttoday,str,10));
+	putuserrec(&cfg,useron.number,U_TEXTRA,5,ultoa(useron.textra,str,10));
+	putuserrec(&cfg,useron.number,U_TLAST,5,ultoa(useron.tlast,str,10));
 
 	getusrsubs();
 	getusrdirs();
diff --git a/src/sbbs3/netmail.cpp b/src/sbbs3/netmail.cpp
index e8390f9d2a10e240edab9e78bbd4c9dba0897105..c3aad868025d3053b70b8eb92935d7b78e94d70c 100644
--- a/src/sbbs3/netmail.cpp
+++ b/src/sbbs3/netmail.cpp
@@ -276,9 +276,9 @@ bool sbbs_t::inetmail(char *into, char *subj, long mode)
 
 	useron.emails++;
 	logon_emails++;
-	putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10)); 
+	putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10)); 
 	useron.etoday++;
-	putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+	putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 
 	sprintf(str,"Sent Internet Mail to %s (%s)",name,addr);
 	logline("EN",str);
@@ -448,9 +448,9 @@ bool sbbs_t::qnetmail(char *into, char *subj, long mode)
 
 	useron.emails++;
 	logon_emails++;
-	putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10)); 
+	putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10)); 
 	useron.etoday++;
-	putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+	putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 
 	sprintf(str,"Sent QWK NetMail to %s (%s)",to,fulladdr);
 	logline("EN",str);
diff --git a/src/sbbs3/postmsg.cpp b/src/sbbs3/postmsg.cpp
index 50f92253ca86144a496e317b010afe1ebb98aab7..967b77b7cc15160bfcba2462fa86b3a97410ef14 100644
--- a/src/sbbs3/postmsg.cpp
+++ b/src/sbbs3/postmsg.cpp
@@ -328,8 +328,8 @@ bool sbbs_t::postmsg(uint subnum, smbmsg_t *remsg, long wm_mode)
 	useron.ptoday++;
 	useron.posts++;
 	logon_posts++;
-	putuserrec(&cfg,useron.number,U_POSTS,5,itoa(useron.posts,str,10));
-	putuserrec(&cfg,useron.number,U_PTODAY,5,itoa(useron.ptoday,str,10));
+	putuserrec(&cfg,useron.number,U_POSTS,5,ultoa(useron.posts,str,10));
+	putuserrec(&cfg,useron.number,U_PTODAY,5,ultoa(useron.ptoday,str,10));
 	bprintf(text[Posted],cfg.grp[cfg.sub[subnum]->grp]->sname
 		,cfg.sub[subnum]->lname);
 	sprintf(str,"Posted on %s %s",cfg.grp[cfg.sub[subnum]->grp]->sname,cfg.sub[subnum]->lname);
diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp
index a782066d4fce5fc3b7e0dfbc96a60f1b1f1e3365..3adec88a9dcb23bfbd2b8bab6e6459127da9f560 100644
--- a/src/sbbs3/str.cpp
+++ b/src/sbbs3/str.cpp
@@ -513,7 +513,7 @@ bool sbbs_t::inputnstime(time_t *dt)
 	tm=*tp;
 
 	bputs(text[NScanYear]);
-	itoa(tm.tm_year+1900,str,10);
+	ultoa(tm.tm_year+1900,str,10);
 	if(!getstr(str,4,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
 		CRLF;
 		return(false); }
@@ -524,7 +524,7 @@ bool sbbs_t::inputnstime(time_t *dt)
 	tm.tm_year-=1900;	/* tm_year is years since 1900 */
 
 	bputs(text[NScanMonth]);
-	itoa(tm.tm_mon+1,str,10);
+	ultoa(tm.tm_mon+1,str,10);
 	if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
 		CRLF;
 		return(false); }
@@ -535,7 +535,7 @@ bool sbbs_t::inputnstime(time_t *dt)
 	tm.tm_mon--;		/* tm_mon is zero-based */
 
 	bputs(text[NScanDay]);
-	itoa(tm.tm_mday,str,10);
+	ultoa(tm.tm_mday,str,10);
 	if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
 		CRLF;
 		return(false); }
@@ -556,7 +556,7 @@ bool sbbs_t::inputnstime(time_t *dt)
 		else {
 			hour=tm.tm_hour;
 			pm=0; } }
-	itoa(hour,str,10);
+	ultoa(hour,str,10);
 	if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
 		CRLF;
 		return(false); }
@@ -566,7 +566,7 @@ bool sbbs_t::inputnstime(time_t *dt)
 		return(false); }
 
 	bputs(text[NScanMinute]);
-	itoa(tm.tm_min,str,10);
+	ultoa(tm.tm_min,str,10);
 	if(!getstr(str,2,K_EDIT|K_AUTODEL|K_NUMBER|K_NOCRLF) || sys_status&SS_ABORT) {
 		CRLF;
 		return(false); }
diff --git a/src/sbbs3/un_rep.cpp b/src/sbbs3/un_rep.cpp
index 282fcffff2a14d6c108714cd3baf1e7df733f571..92964f0a7acdbcae5d883623ed37120efdd73ecf 100644
--- a/src/sbbs3/un_rep.cpp
+++ b/src/sbbs3/un_rep.cpp
@@ -213,15 +213,15 @@ bool sbbs_t::unpack_rep(char* repfile)
 				useron.fbacks++;
 				logon_fbacks++;
 				putuserrec(&cfg,useron.number,U_FBACKS,5
-					,itoa(useron.fbacks,tmp,10)); }
+					,ultoa(useron.fbacks,tmp,10)); }
 			else {
 				useron.emails++;
 				logon_emails++;
 				putuserrec(&cfg,useron.number,U_EMAILS,5
-					,itoa(useron.emails,tmp,10)); }
+					,ultoa(useron.emails,tmp,10)); }
 			useron.etoday++;
 			putuserrec(&cfg,useron.number,U_ETODAY,5
-				,itoa(useron.etoday,tmp,10));
+				,ultoa(useron.etoday,tmp,10));
 			bprintf(text[Emailed],username(&cfg,j,tmp),j);
 			sprintf(str,"E-mailed %s #%d",username(&cfg,j,tmp),j);
 			logline("E+",str);
@@ -388,8 +388,8 @@ bool sbbs_t::unpack_rep(char* repfile)
 			useron.ptoday++;
 			useron.posts++;
 			logon_posts++;
-			putuserrec(&cfg,useron.number,U_POSTS,5,itoa(useron.posts,str,10));
-			putuserrec(&cfg,useron.number,U_PTODAY,5,itoa(useron.ptoday,str,10));
+			putuserrec(&cfg,useron.number,U_POSTS,5,ultoa(useron.posts,str,10));
+			putuserrec(&cfg,useron.number,U_PTODAY,5,ultoa(useron.ptoday,str,10));
 			bprintf(text[Posted],cfg.grp[cfg.sub[n]->grp]->sname
 				,cfg.sub[n]->lname);
 			sprintf(str,"Posted on %s/%s",cfg.grp[cfg.sub[n]->grp]->sname
diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index f5d457e279ca1d024999b847fa5da48834accdcb..9f796b4a2cc0f2086bc7e15af03af19891699f90 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -306,28 +306,28 @@ int DLLCALL putuserdat(scfg_t* cfg, user_t* user)
 	putrec(userdat,U_PWMOD,8,ultoa(user->pwmod,str,16));
 	putrec(userdat,U_PWMOD+8,2,crlf);
 
-	putrec(userdat,U_LOGONS,5,itoa(user->logons,str,10));
-	putrec(userdat,U_LTODAY,5,itoa(user->ltoday,str,10));
-	putrec(userdat,U_TIMEON,5,itoa(user->timeon,str,10));
-	putrec(userdat,U_TEXTRA,5,itoa(user->textra,str,10));
-	putrec(userdat,U_TTODAY,5,itoa(user->ttoday,str,10));
-	putrec(userdat,U_TLAST,5,itoa(user->tlast,str,10));
-	putrec(userdat,U_POSTS,5,itoa(user->posts,str,10));
-	putrec(userdat,U_EMAILS,5,itoa(user->emails,str,10));
-	putrec(userdat,U_FBACKS,5,itoa(user->fbacks,str,10));
-	putrec(userdat,U_ETODAY,5,itoa(user->etoday,str,10));
-	putrec(userdat,U_PTODAY,5,itoa(user->ptoday,str,10));
+	putrec(userdat,U_LOGONS,5,ultoa(user->logons,str,10));
+	putrec(userdat,U_LTODAY,5,ultoa(user->ltoday,str,10));
+	putrec(userdat,U_TIMEON,5,ultoa(user->timeon,str,10));
+	putrec(userdat,U_TEXTRA,5,ultoa(user->textra,str,10));
+	putrec(userdat,U_TTODAY,5,ultoa(user->ttoday,str,10));
+	putrec(userdat,U_TLAST,5,ultoa(user->tlast,str,10));
+	putrec(userdat,U_POSTS,5,ultoa(user->posts,str,10));
+	putrec(userdat,U_EMAILS,5,ultoa(user->emails,str,10));
+	putrec(userdat,U_FBACKS,5,ultoa(user->fbacks,str,10));
+	putrec(userdat,U_ETODAY,5,ultoa(user->etoday,str,10));
+	putrec(userdat,U_PTODAY,5,ultoa(user->ptoday,str,10));
 	putrec(userdat,U_PTODAY+5,2,crlf);
 
 	putrec(userdat,U_ULB,10,ultoa(user->ulb,str,10));
-	putrec(userdat,U_ULS,5,itoa(user->uls,str,10));
+	putrec(userdat,U_ULS,5,ultoa(user->uls,str,10));
 	putrec(userdat,U_DLB,10,ultoa(user->dlb,str,10));
-	putrec(userdat,U_DLS,5,itoa(user->dls,str,10));
+	putrec(userdat,U_DLS,5,ultoa(user->dls,str,10));
 	putrec(userdat,U_CDT,10,ultoa(user->cdt,str,10));
 	putrec(userdat,U_MIN,10,ultoa(user->min,str,10));
 	putrec(userdat,U_MIN+10,2,crlf);
 
-	putrec(userdat,U_LEVEL,2,itoa(user->level,str,10));
+	putrec(userdat,U_LEVEL,2,ultoa(user->level,str,10));
 	putrec(userdat,U_FLAGS1,8,ultoa(user->flags1,str,16));
 	putrec(userdat,U_TL,2,nulstr);	/* unused */
 	putrec(userdat,U_FLAGS2,8,ultoa(user->flags2,str,16));
@@ -335,16 +335,16 @@ int DLLCALL putuserdat(scfg_t* cfg, user_t* user)
 	putrec(userdat,U_REST,8,ultoa(user->rest,str,16));
 	putrec(userdat,U_REST+8,2,crlf);
 
-	putrec(userdat,U_ROWS,2,itoa(user->rows,str,10));
+	putrec(userdat,U_ROWS,2,ultoa(user->rows,str,10));
 	userdat[U_SEX]=user->sex;
 	userdat[U_PROT]=user->prot;
 	putrec(userdat,U_MISC,8,ultoa(user->misc,str,16));
-	putrec(userdat,U_LEECH,2,itoa(user->leech,str,16));
+	putrec(userdat,U_LEECH,2,ultoa(user->leech,str,16));
 
 	putrec(userdat,U_CURSUB,8,user->cursub);
 	putrec(userdat,U_CURDIR,8,user->curdir);
 
-	// putrec(userdat,U_CMDSET,2,itoa(user->cmdset,str,16)); /* Unused */
+	// putrec(userdat,U_CMDSET,2,ultoa(user->cmdset,str,16)); /* Unused */
 	putrec(userdat,U_CMDSET+2,2,crlf);
 
 	putrec(userdat,U_XFER_CMD+LEN_XFER_CMD,2,crlf);
diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp
index d88b2406055e4765a3b78155571c58ea4b3461ff..791b3813ff9e3cd78edb3669ab5f653c19109722 100644
--- a/src/sbbs3/writemsg.cpp
+++ b/src/sbbs3/writemsg.cpp
@@ -904,13 +904,13 @@ void sbbs_t::forwardmail(smbmsg_t *msg, int usernumber)
 	if(usernumber==1) {
 		useron.fbacks++;
 		logon_fbacks++;
-		putuserrec(&cfg,useron.number,U_FBACKS,5,itoa(useron.fbacks,tmp,10)); }
+		putuserrec(&cfg,useron.number,U_FBACKS,5,ultoa(useron.fbacks,tmp,10)); }
 	else {
 		useron.emails++;
 		logon_emails++;
-		putuserrec(&cfg,useron.number,U_EMAILS,5,itoa(useron.emails,tmp,10)); }
+		putuserrec(&cfg,useron.number,U_EMAILS,5,ultoa(useron.emails,tmp,10)); }
 	useron.etoday++;
-	putuserrec(&cfg,useron.number,U_ETODAY,5,itoa(useron.etoday,tmp,10));
+	putuserrec(&cfg,useron.number,U_ETODAY,5,ultoa(useron.etoday,tmp,10));
 
 	for(i=1;i<=cfg.sys_nodes;i++) { /* Tell user, if online */
 		getnodedat(i,&node,0);
diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp
index 6ffcdacedf8a2a230c971739aac092212dfd4ed7..62f3ba2d233f264b9acefd1101abc325233f5ebf 100644
--- a/src/sbbs3/xtrn.cpp
+++ b/src/sbbs3/xtrn.cpp
@@ -750,10 +750,10 @@ char * sbbs_t::cmdstr(char *instr, char *fpath, char *fspec, char *outstr)
                     strcat(cmd,cfg.temp_dir);
                     break;
                 case 'H':   /* Port Handle or Hardware Flow Control */
-                    strcat(cmd,itoa(client_socket_dup,str,10));
+                    strcat(cmd,ultoa(client_socket_dup,str,10));
                     break;
                 case 'I':   /* UART IRQ Line */
-                    strcat(cmd,itoa(cfg.com_irq,str,10));
+                    strcat(cmd,ultoa(cfg.com_irq,str,10));
                     break;
                 case 'J':
                     strcat(cmd,cfg.data_dir);
@@ -762,7 +762,7 @@ char * sbbs_t::cmdstr(char *instr, char *fpath, char *fspec, char *outstr)
                     strcat(cmd,cfg.ctrl_dir);
                     break;
                 case 'L':   /* Lines per message */
-                    strcat(cmd,itoa(cfg.level_linespermsg[useron.level],str,10));
+                    strcat(cmd,ultoa(cfg.level_linespermsg[useron.level],str,10));
                     break;
                 case 'M':   /* Minutes (credits) for user */
                     strcat(cmd,ultoa(useron.min,str,10));
@@ -774,30 +774,30 @@ char * sbbs_t::cmdstr(char *instr, char *fpath, char *fspec, char *outstr)
                     strcat(cmd,cfg.sys_op);
                     break;
                 case 'P':   /* COM Port */
-                    strcat(cmd,itoa(online==ON_LOCAL ? 0:cfg.com_port,str,10));
+                    strcat(cmd,ultoa(online==ON_LOCAL ? 0:cfg.com_port,str,10));
                     break;
                 case 'Q':   /* QWK ID */
                     strcat(cmd,cfg.sys_id);
                     break;
                 case 'R':   /* Rows */
-                    strcat(cmd,itoa(rows,str,10));
+                    strcat(cmd,ultoa(rows,str,10));
                     break;
                 case 'S':   /* File Spec */
                     strcat(cmd,fspec);
                     break;
                 case 'T':   /* Time left in seconds */
                     gettimeleft();
-                    strcat(cmd,itoa(timeleft,str,10));
+                    strcat(cmd,ultoa(timeleft,str,10));
                     break;
                 case 'U':   /* UART I/O Address (in hex) */
-                    strcat(cmd,itoa(cfg.com_base,str,16));
+                    strcat(cmd,ultoa(cfg.com_base,str,16));
                     break;
                 case 'V':   /* Synchronet Version */
                     sprintf(str,"%s%c",VERSION,REVISION);
                     break;
                 case 'W':   /* Time-slice API type (mswtype) */
 #if 0 //ndef __FLAT__
-                    strcat(cmd,itoa(mswtyp,str,10));
+                    strcat(cmd,ultoa(mswtyp,str,10));
 #endif
                     break;
                 case 'X':
diff --git a/src/sbbs3/xtrn_sec.cpp b/src/sbbs3/xtrn_sec.cpp
index 3a5b631310d5b4081cb09842bdd28cb114df869c..a38ccc8f00a84c27743ff78e21e3be2ce59e988c 100644
--- a/src/sbbs3/xtrn_sec.cpp
+++ b/src/sbbs3/xtrn_sec.cpp
@@ -1149,7 +1149,7 @@ void sbbs_t::moduserdat(uint xtrnnum)
 			read(file,&i,2);			/* SecLvl */
 			if(i<90) {
 				useron.level=i;
-				putuserrec(&cfg,useron.number,U_LEVEL,2,itoa(useron.level,tmp,10)); }
+				putuserrec(&cfg,useron.number,U_LEVEL,2,ultoa(useron.level,tmp,10)); }
 			close(file);
 			remove(path); }
 		return; }
@@ -1164,7 +1164,7 @@ void sbbs_t::moduserdat(uint xtrnnum)
 				mod=atoi(str);
 				if(mod<90) {
 					useron.level=(char)mod;
-					putuserrec(&cfg,useron.number,U_LEVEL,2,itoa(useron.level,tmp,10)); } }
+					putuserrec(&cfg,useron.number,U_LEVEL,2,ultoa(useron.level,tmp,10)); } }
 
 			for(;i<23;i++)
 				if(!fgets(str,128,stream))
@@ -1221,11 +1221,11 @@ void sbbs_t::moduserdat(uint xtrnnum)
 				read(file,&i,2);
 				if(i<90) {
 					useron.level=i;
-					putuserrec(&cfg,useron.number,U_LEVEL,2,itoa(useron.level,tmp,10)); }
+					putuserrec(&cfg,useron.number,U_LEVEL,2,ultoa(useron.level,tmp,10)); }
 				lseek(file,75,SEEK_CUR);	/* read in expiration date */
 				read(file,&i,2);			/* convert from julian to unix */
 				useron.expire=juliantounix(i);
-				putuserrec(&cfg,useron.number,U_EXPIRE,8,ltoa(useron.expire,tmp,16)); }
+				putuserrec(&cfg,useron.number,U_EXPIRE,8,ultoa(useron.expire,tmp,16)); }
 			close(file); }
 		return; }
 
@@ -1251,7 +1251,7 @@ void sbbs_t::moduserdat(uint xtrnnum)
 			mod=atoi(str);
 			if(isdigit(str[0]) && mod<90) {
 				useron.level=(uchar)mod;
-				putuserrec(&cfg,useron.number,U_LEVEL,2,itoa(useron.level,tmp,10)); } }
+				putuserrec(&cfg,useron.number,U_LEVEL,2,ultoa(useron.level,tmp,10)); } }
 		fgets(str,81,stream);		 /* was transfer level, now ignored */
 		if(fgets(str,81,stream)) {		/* flags #1 */
 			if(strchr(str,'-'))         /* remove flags */