diff --git a/src/sbbs3/answer.cpp b/src/sbbs3/answer.cpp
index 378454b8f1a18c1423390e5fd138e58ebd9e4982..9f0d771ba76011ac5e74496692f654cc5a880891 100644
--- a/src/sbbs3/answer.cpp
+++ b/src/sbbs3/answer.cpp
@@ -41,6 +41,7 @@
 bool sbbs_t::answer()
 {
 	char	str[256],str2[256],c;
+	char 	tmp[512];
 	int		i,l,in;
 	struct tm * tm;
 	struct in_addr addr;
diff --git a/src/sbbs3/bat_xfer.cpp b/src/sbbs3/bat_xfer.cpp
index 21b2940d162b3a62b0b211787efb445e7fe61c01..1d066e1e2cbd0cf9a51c76e9a68981472de07dad 100644
--- a/src/sbbs3/bat_xfer.cpp
+++ b/src/sbbs3/bat_xfer.cpp
@@ -42,11 +42,12 @@
 /****************************************************************************/
 void sbbs_t::batchmenu()
 {
-    char str[129],tmp2[250],done=0,ch;
-	uint i,n,xfrprot,xfrdir;
-    ulong totalcdt,totalsize,totaltime;
-    time_t start,end;
-    file_t f;
+    char	str[129],tmp2[250],done=0,ch;
+	char 	tmp[512];
+	uint	i,n,xfrprot,xfrdir;
+    ulong	totalcdt,totalsize,totaltime;
+    time_t	start,end;
+    file_t	f;
 
 	if(!batdn_total && !batup_total && cfg.upload_dir==INVALID_DIR) {
 		bputs(text[NoFilesInBatchQueue]);
@@ -334,13 +335,14 @@ void sbbs_t::batchmenu()
 /****************************************************************************/
 void sbbs_t::start_batch_download()
 {
-	char ch,str[256],tmp2[256],tmp3[128],fname[64];
-    int j;
-    uint i,xfrprot;
-    ulong totalcdt,totalsize,totaltime;
-    time_t start,end,t;
-	struct tm * tm;
-    file_t f;
+	char	ch,str[256],tmp2[256],tmp3[128],fname[64];
+	char 	tmp[512];
+    int		j;
+    uint	i,xfrprot;
+    ulong	totalcdt,totalsize,totaltime;
+    time_t	start,end,t;
+	struct	tm * tm;
+    file_t	f;
 
 	if(useron.rest&FLAG('D')) {     /* Download restriction */
 		bputs(text[R_Download]);
@@ -561,6 +563,7 @@ bool sbbs_t::create_batchup_lst()
 bool sbbs_t::create_bimodem_pth()
 {
     char	str[256],tmp2[512];
+	char 	tmp[512];
     int		file;
 	uint	i;
 
@@ -597,6 +600,7 @@ bool sbbs_t::create_bimodem_pth()
 void sbbs_t::batch_upload()
 {
     char	str1[256],str2[256];
+	char 	tmp[512];
 	uint	i,j,x,y;
     file_t	f;
 	DIR*	dir;
@@ -760,9 +764,10 @@ void sbbs_t::batch_add_list(char *list)
 /**************************************************************************/
 bool sbbs_t::addtobatdl(file_t* f)
 {
-    char str[256],tmp2[256];
-    uint i;
-	ulong totalcdt, totalsize, totaltime;
+    char	str[256],tmp2[256];
+	char 	tmp[512];
+    uint	i;
+	ulong	totalcdt, totalsize, totaltime;
 
 	if(useron.rest&FLAG('D')) {
 		bputs(text[R_Download]);
diff --git a/src/sbbs3/bulkmail.cpp b/src/sbbs3/bulkmail.cpp
index 232413c254aaec2b59f245af291c5809262df937..90121cd0956d5f35739e380b34c31d5e403a8ea0 100644
--- a/src/sbbs3/bulkmail.cpp
+++ b/src/sbbs3/bulkmail.cpp
@@ -42,6 +42,7 @@ void sbbs_t::bulkmail(uchar *ar)
 {
 	char	str[256],str2[256],msgpath[256],title[LEN_TITLE+1]
 			,buf[SDT_BLOCK_LEN],found=0;
+	char 	tmp[512];
 	ushort	xlat=XLAT_NONE,msgattr=0;
 	int 	i,j,x,file;
 	long	msgs=0;
@@ -191,9 +192,10 @@ void sbbs_t::bulkmail(uchar *ar)
 int sbbs_t::bulkmailhdr(uint usernum, smbmsg_t *msg, ushort msgattr, ulong offset
     , ulong length, char *title)
 {
-    char str[256];
-    int i,j;
-    node_t node;
+    char	str[256];
+	char 	tmp[512];
+    int		i,j;
+    node_t	node;
 
 	memset(msg,0,sizeof(smbmsg_t));
 	memcpy(msg->hdr.id,"SHD\x1a",4);
diff --git a/src/sbbs3/chat.cpp b/src/sbbs3/chat.cpp
index 47d9e66c6760eeb9fdfab3705af4b5957adcbd96..2217e9635caf1ed4ae41c0a454768b108e8b5756 100644
--- a/src/sbbs3/chat.cpp
+++ b/src/sbbs3/chat.cpp
@@ -53,6 +53,7 @@ void sbbs_t::chatsection()
 			,usrs,preusrs,qusrs,*gurubuf=NULL,channel,savch,*p
 			,pgraph[400],buf[400]
 			,usr[MAX_NODES],preusr[MAX_NODES],qusr[MAX_NODES];
+	char 	tmp[512];
 	int 	file;
 	long	i,j,k,n;
 	node_t 	node;
@@ -662,7 +663,7 @@ void sbbs_t::privchat(bool local)
 				"\1rSplit-Screen \1cSysop\1r Chat          \1y"
 				"Time Left: \1g%-8s\1w"
 				" �����[\1i\1b%c\1n\1h]�����";
-
+	char 	tmp[512];
 	uchar	ch;
 	int 	in,out,i,n,echo=1,x,y,activity,remote_activity;
     int		local_y,remote_y;
@@ -1052,6 +1053,7 @@ void sbbs_t::privchat(bool local)
 int sbbs_t::getnodetopage(int all, int telegram)
 {
 	char	str[128];
+	char 	tmp[512];
 	uint 	i,j;
 	ulong	l;
 	node_t	node;
@@ -1153,6 +1155,7 @@ int sbbs_t::getnodetopage(int all, int telegram)
 void sbbs_t::nodemsg()
 {
 	char	str[256],line[256],buf[512],logbuf[512],ch;
+	char 	tmp[512];
 	int 	i,usernumber,done=0;
 	node_t	node,savenode;
 
@@ -1323,6 +1326,7 @@ void sbbs_t::guruchat(char *line, char *gurubuf, int gurunum)
 {
 	char	str[256],cstr[256],*ptr,*answer[100],answers,theanswer[769]
 			,mistakes=1,hu=0;
+	char 	tmp[512];
 	int		file;
 	uint 	c,i,j,k;
 	long 	len;
diff --git a/src/sbbs3/data.cpp b/src/sbbs3/data.cpp
index 260a6597ed80b333ab1f47171b2ce85948766ef9..26fe9b1382614c899e42e390d0e08ce7ed5161bf 100644
--- a/src/sbbs3/data.cpp
+++ b/src/sbbs3/data.cpp
@@ -173,6 +173,7 @@ uint sbbs_t::gettotalfiles(uint dirnum)
 void sbbs_t::gettimeleft(void)
 {
     char    str[128];
+	char 	tmp[512];
     int     i;
     time_t  eventtime=0;
 	time_t	thisevent;
diff --git a/src/sbbs3/download.cpp b/src/sbbs3/download.cpp
index c0c95a62988b4d4d48c38cc262f4a20d9ce7fa09..e5afffbec9493fe109a874bcc2ad85f5d4ee0716 100644
--- a/src/sbbs3/download.cpp
+++ b/src/sbbs3/download.cpp
@@ -43,11 +43,12 @@
 /****************************************************************************/
 void sbbs_t::downloadfile(file_t* f)
 {
-    char str[256],fname[13];
-    int i,file;
-	long length,mod;
-    ulong l;
-	user_t uploader;
+    char	str[256],fname[13];
+	char 	tmp[512];
+    int		i,file;
+	long	length,mod;
+    ulong	l;
+	user_t	uploader;
 
 	getfiledat(&cfg,f); /* Get current data - right after download */
 	if((length=f->size)<0L)
@@ -144,7 +145,8 @@ void sbbs_t::downloadfile(file_t* f)
 /****************************************************************************/
 void sbbs_t::notdownloaded(ulong size, time_t start, time_t end)
 {
-    char str[256],tmp2[256];
+    char	str[256],tmp2[256];
+	char 	tmp[512];
 
 	sprintf(str,"Estimated Time: %s  Transfer Time: %s"
 		,sectostr(cur_cps ? size/cur_cps : 0,tmp)
@@ -213,7 +215,8 @@ int sbbs_t::protocol(char *cmdline, int cd)
 /****************************************************************************/
 void sbbs_t::autohangup()
 {
-    char a,c,k;
+    char	a,c,k;
+	char 	tmp[512];
 
 	if(online!=ON_REMOTE)
 		return;
@@ -255,9 +258,10 @@ void sbbs_t::autohangup()
 /****************************************************************************/
 bool sbbs_t::checkprotlog(file_t* f)
 {
-	char str[256],size[128];
-    int file;
-    FILE *stream;
+	char	str[256],size[128];
+	char 	tmp[512];
+    int		file;
+    FILE *	stream;
 
 	sprintf(str,"%sPROTOCOL.LOG",cfg.node_dir);
 	if((stream=fnopen(&file,str,O_RDONLY))==NULL) {
diff --git a/src/sbbs3/email.cpp b/src/sbbs3/email.cpp
index fbd34f13850548c8a17b5a509ed10ee47b2a01d9..aadde22ae30be50c60f36a42def4011f9dd009b1 100644
--- a/src/sbbs3/email.cpp
+++ b/src/sbbs3/email.cpp
@@ -47,6 +47,7 @@ bool sbbs_t::email(int usernumber, char *top, char *subj, long mode)
 {
 	char	str[256],str2[256],msgpath[256],title[LEN_TITLE+1],ch
 			,buf[SDT_BLOCK_LEN];
+	char 	tmp[512];
 	ushort	xlat=XLAT_NONE,msgattr=0;
 	int 	i,j,x,file;
 	long	l;
diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index 395c0c866b67b5e4e2a983e87d906830ffee0769..497dba81d34af2ca5fc24dd3d08673f4fb92d7a0 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -788,6 +788,7 @@ void sbbs_t::skipto(csi_t *csi, uchar inst)
 int sbbs_t::exec(csi_t *csi)
 {
 	char	str[256],*path;
+	char 	tmp[512];
 	uchar	buf[1025],ch;
 	int 	i,j,file;
 	long	l;
diff --git a/src/sbbs3/execfunc.cpp b/src/sbbs3/execfunc.cpp
index 67baa871070d51bb2b03aa8f445cc9a35e6cd0e9..4acb746ac5e33e66a77fb41e3e1c25add2fc908e 100644
--- a/src/sbbs3/execfunc.cpp
+++ b/src/sbbs3/execfunc.cpp
@@ -44,6 +44,7 @@ extern RingBuf* node_inbuf[];
 int sbbs_t::exec_function(csi_t *csi)
 {
 	char	str[256],tmp2[128],ch;
+	char 	tmp[512];
 	uchar*	p;
 	char	ansi_seq[32];
 	int		ansi_len;
diff --git a/src/sbbs3/fido.cpp b/src/sbbs3/fido.cpp
index 1ace8395b89346cfd64aa0049d9d3074ae7d1c0c..50c04e814b1254c5b8311740a85d972c5471cb71 100644
--- a/src/sbbs3/fido.cpp
+++ b/src/sbbs3/fido.cpp
@@ -97,10 +97,11 @@ bool sbbs_t::lookup_netuser(char *into)
 /****************************************************************************/
 bool sbbs_t::netmail(char *into, char *title, long mode)
 {
-	char str[256],subj[128],to[256],fname[128],*buf,*p,ch;
-	int file,fido,x,cc_found,cc_sent;
-	uint i;
-	long length,l;
+	char	str[256],subj[128],to[256],fname[128],*buf,*p,ch;
+	char 	tmp[512];
+	int		file,fido,x,cc_found,cc_sent;
+	uint	i;
+	long	length,l;
 	faddr_t addr;
 	fmsghdr_t hdr;
 	struct tm * tm;
@@ -391,7 +392,8 @@ bool sbbs_t::netmail(char *into, char *title, long mode)
 void sbbs_t::qwktonetmail(FILE *rep, char *block, char *into, uchar fromhub)
 {
 	char	HUGE16 *qwkbuf,to[129],name[129],sender[129],senderaddr[129]
-		   ,str[256],*p,*cp,*addr,fulladdr[129],ch;
+			   ,str[256],*p,*cp,*addr,fulladdr[129],ch;
+	char 	tmp[512];
 	int 	i,fido,inet=0,qnet=0;
 	ushort	net,xlat;
 	long	l,offset,length,m,n;
diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp
index 8732762b52909925e12aeeada4c6da5a95d49e94..69262cf63ddb4bc497535ab8f83ec23c2aef97d2 100644
--- a/src/sbbs3/file.cpp
+++ b/src/sbbs3/file.cpp
@@ -73,8 +73,9 @@ void sbbs_t::getextdesc(uint dirnum, ulong datoffset, char *ext)
 /****************************************************************************/
 void sbbs_t::fileinfo(file_t* f)
 {
-	char fname[13],ext[513];
-	uint i,j;
+	char	fname[13],ext[513];
+	char 	tmp[512];
+	uint	i,j;
 
 	for(i=0;i<usrlibs;i++)
 		if(usrlib[i]==cfg.dir[f->dir]->lib)
diff --git a/src/sbbs3/getnode.cpp b/src/sbbs3/getnode.cpp
index 06fd4e5bd6f15f662e2f5cb55de36d1cbd8d17bb..799aac057125f6ae029cef65ce7501f882e27a36 100644
--- a/src/sbbs3/getnode.cpp
+++ b/src/sbbs3/getnode.cpp
@@ -330,8 +330,9 @@ int sbbs_t::whos_online(bool listself)
 /****************************************************************************/
 void sbbs_t::printnodedat(uint number, node_t* node)
 {
-    uint i;
-    char hour,mer[3];
+    uint	i;
+    char	hour,mer[3];
+	char 	tmp[512];
 
 	attr(cfg.color[clr_nodenum]);
 	bprintf("%3d  ",number);
diff --git a/src/sbbs3/inkey.cpp b/src/sbbs3/inkey.cpp
index e9828503e722966298bc6edb95b24c271ff76d33..0a3171c22634e812a371f009b53f69d4bb7e714a 100644
--- a/src/sbbs3/inkey.cpp
+++ b/src/sbbs3/inkey.cpp
@@ -48,6 +48,7 @@
 char sbbs_t::inkey(long mode)
 {
 	char	str[512];
+	char 	tmp[512];
 	uchar	ch=0;
 	uint	i,j;
 
diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index d29c492b3acff8b688e440330f6b0972f4c490ac..b0f6772817fbaa59a602b8d189caf4b064d2ff23 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -51,6 +51,7 @@ int extdesclines(char *str);
 int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode)
 {
 	char	str[256],hdr[256],c,d,letter='A',*p,*datbuf,ext[513];
+	char 	tmp[512];
 	uchar*	ixbbuf;
 	uchar	flagprompt=0;
 	uint	i,j;
@@ -370,10 +371,11 @@ int sbbs_t::listfiles(uint dirnum, char *filespec, int tofile, long mode)
 bool sbbs_t::listfile(char *fname, char HUGE16 *buf, uint dirnum
 	, char *search, char letter, ulong datoffset)
 {
-	char str[256],ext[513]="",*ptr,*cr,*lf,exist=1;
-    uchar alt;
-    int i,j;
-    ulong cdt;
+	char	str[256],ext[513]="",*ptr,*cr,*lf,exist=1;
+	char 	tmp[512];
+    uchar	alt;
+    int		i,j;
+    ulong	cdt;
 
 	if(buf[F_MISC]!=ETX && (buf[F_MISC]-SP)&FM_EXTDESC && useron.misc&EXTDESC) {
 		getextdesc(dirnum,datoffset,ext);
@@ -483,9 +485,10 @@ void sbbs_t::clearline(void)
 /****************************************************************************/
 bool sbbs_t::removefcdt(file_t* f)
 {
-	char str[128];
-	int u;
-	long cdt;
+	char	str[128];
+	char 	tmp[512];
+	int		u;
+	long	cdt;
 
 	if((u=matchuser(&cfg,f->uler))==0) {
 	   bputs(text[UnknownUser]);
@@ -561,9 +564,10 @@ 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,remfile;
-	uint i,j,ml,md,udir,ulib;
-	file_t f;
+	char	ch,c,d,str[256],fname[128],*p,remcdt,remfile;
+	char 	tmp[512];
+	uint	i,j,ml,md,udir,ulib;
+	file_t	f;
 
 	for(ulib=0;ulib<usrlibs;ulib++)
 		if(usrlib[ulib]==cfg.dir[dirnum]->lib)
@@ -817,7 +821,8 @@ int sbbs_t::batchflagprompt(uint dirnum, file_t* bf, uint total
 int sbbs_t::listfileinfo(uint dirnum, char *filespec, long mode)
 {
 	char	str[258],path[258],dirpath[256],done=0,ch,fname[13],ext[513];
-	uchar HUGE16 *ixbbuf,*usrxfrbuf=NULL,*p;
+	char 	tmp[512];
+	uchar	*ixbbuf,*usrxfrbuf=NULL,*p;
 	int		file;
 	int		found=0;
     uint	i,j;
@@ -1271,9 +1276,11 @@ int sbbs_t::listfileinfo(uint dirnum, char *filespec, long mode)
 /****************************************************************************/
 void sbbs_t::listfiletofile(char *fname, char HUGE16 *buf, uint dirnum, int file)
 {
-    char str[256],exist=1;
-    uchar alt;
-    ulong cdt;
+    char	str[256];
+	char 	tmp[512];
+    uchar	alt;
+    ulong	cdt;
+	bool	exist=true;
 
 	strcpy(str,fname);
 	if(buf[F_MISC]!=ETX && (buf[F_MISC]-SP)&FM_EXTDESC)
@@ -1286,7 +1293,7 @@ void sbbs_t::listfiletofile(char *fname, char HUGE16 *buf, uint dirnum, int file
 	sprintf(str,"%s%s",alt>0 && alt<=cfg.altpaths ? cfg.altpath[alt-1]
 		: cfg.dir[dirnum]->path,unpadfname(fname,tmp));
 	if(cfg.dir[dirnum]->misc&DIR_FCHK && !fexist(str))
-		exist=0;
+		exist=false;
 	getrec((char *)buf,F_CDT,LEN_FCDT,str);
 	cdt=atol(str);
 	if(!cdt)
diff --git a/src/sbbs3/login.cpp b/src/sbbs3/login.cpp
index f4e3281c07ea1d578d29bf3f4cf8b21d8259c038..6e0a952fcee432e0fbe5e2e0b2e39094c81b0967 100644
--- a/src/sbbs3/login.cpp
+++ b/src/sbbs3/login.cpp
@@ -40,7 +40,8 @@
 
 int sbbs_t::login(char *str, char *pw)
 {
-	long useron_misc=useron.misc;
+	char 	tmp[512];
+	long	useron_misc=useron.misc;
 
 	useron.number=0;
 	if(cfg.node_dollars_per_call && noyes(text[AreYouSureQ]))
diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index 3340e3f6c38494da50b21e78065c93168d7414ff..92a61eebe585e4241a9f0090626145ad8ef12ed4 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -47,6 +47,7 @@ extern "C" void client_on(SOCKET sock, client_t* client);
 bool sbbs_t::logon()
 {
 	char	str[256],c;
+	char 	tmp[512];
 	int 	file;
 	uint	i,j,mailw;
 	ulong	totallogons;
diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp
index a73baa2a908d85bdbbf700bd093302db315d3638..d30bdb12b8d85980ed0588f962e512214aa91c25 100644
--- a/src/sbbs3/logout.cpp
+++ b/src/sbbs3/logout.cpp
@@ -44,6 +44,7 @@
 void sbbs_t::logout()
 {
 	char	str[256];
+	char 	tmp[512];
 	int 	i,j;
 	ushort	ttoday;
 	node_t	node;
diff --git a/src/sbbs3/msgtoqwk.cpp b/src/sbbs3/msgtoqwk.cpp
index 90287b5feecbcafba19dc110ae9c8edb7b5dea0e..2502baed53b5e50ae88371efc2baad1c82f47843 100644
--- a/src/sbbs3/msgtoqwk.cpp
+++ b/src/sbbs3/msgtoqwk.cpp
@@ -48,6 +48,7 @@ ulong sbbs_t::msgtoqwk(smbmsg_t* msg, FILE *qwk_fp, long mode, int subnum
 	, int conf)
 {
 	char	str[512],from[512],to[512],ch,tear=0,tearwatch=0,HUGE16 *buf,*p;
+	char 	tmp[512];
 	long	l,size=0,offset;
 	int 	i;
 	struct	tm	tm;
diff --git a/src/sbbs3/netmail.cpp b/src/sbbs3/netmail.cpp
index eb569e1360e077930cb46463c7d102c9d3686860..a42a4000f8157dbaf309f691bde30c80a60b46a9 100644
--- a/src/sbbs3/netmail.cpp
+++ b/src/sbbs3/netmail.cpp
@@ -44,6 +44,7 @@ bool sbbs_t::inetmail(char *into, char *subj, long mode)
 {
 	char	str[256],str2[256],msgpath[256],title[256],name[256],ch
 			,buf[SDT_BLOCK_LEN],*p,addr[256],*uname_p;
+	char 	tmp[512];
 	char	your_addr[128];
 	ushort	xlat=XLAT_NONE,net=NET_INTERNET;
 	int 	i,j,x,file;
@@ -289,6 +290,7 @@ bool sbbs_t::qnetmail(char *into, char *subj, long mode)
 {
 	char	str[256],msgpath[128],title[128],to[128],fulladdr[128]
 			,buf[SDT_BLOCK_LEN],*addr;
+	char 	tmp[512];
 	ushort	xlat=XLAT_NONE,net=NET_QWK,touser;
 	int 	i,j,x,file;
 	ulong	length,offset;
diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp
index 6146354599a44e4495eaf8bf98993e91146acf10..a44849ecda5173a60dc501694d55362296c3afbb 100644
--- a/src/sbbs3/newuser.cpp
+++ b/src/sbbs3/newuser.cpp
@@ -45,10 +45,12 @@
 /****************************************************************************/
 void sbbs_t::newuser()
 {
-	char	c,str[512],usa;
+	char	c,str[512];
+	char 	tmp[512];
 	int 	file;
 	uint	i,j;
 	long	misc;
+	bool	usa;
 	FILE	*stream;
 
 	if(cur_rate<cfg.node_minbps) {
diff --git a/src/sbbs3/pack_qwk.cpp b/src/sbbs3/pack_qwk.cpp
index 16c2b2d0ec00f2fa514e8e1093cd1e71043e14ff..209027838e4d45b5e6b6970347cfbb69ae115b94 100644
--- a/src/sbbs3/pack_qwk.cpp
+++ b/src/sbbs3/pack_qwk.cpp
@@ -45,6 +45,7 @@
 bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
 {
 	char	str[256],tmp2[256],ch,*p;
+	char 	tmp[512];
 	char*	fname;
 	int 	file,mode;
 	uint	i,j,k,conf;
diff --git a/src/sbbs3/pack_rep.cpp b/src/sbbs3/pack_rep.cpp
index 03b93f4a98b20ad014603f55deabc3403b09f996..77fb8f55719e6d7f94bc2bf12d2a3ed83f6cd5d3 100644
--- a/src/sbbs3/pack_rep.cpp
+++ b/src/sbbs3/pack_rep.cpp
@@ -46,6 +46,7 @@
 bool sbbs_t::pack_rep(uint hubnum)
 {
 	char	str[256],tmp2[256];
+	char 	tmp[512];
 	int 	file,mode;
 	uint	i,j,k;
 	long	l,msgcnt,submsgs,posts,packedmail,netfiles=0,deleted;
diff --git a/src/sbbs3/qwk.cpp b/src/sbbs3/qwk.cpp
index d69b57fcacf02268482d26ab58a148750bd67de4..7e875551f749cb16b6484e5f97065cbe57c54fe4 100644
--- a/src/sbbs3/qwk.cpp
+++ b/src/sbbs3/qwk.cpp
@@ -405,6 +405,7 @@ void sbbs_t::qwk_sec()
 {
 	char	str[256],tmp2[256],ch,bi=0
 			,*AttemptedToDownloadQWKpacket="Attempted to download QWK packet";
+	char 	tmp[512];
 	int 	s;
 	uint	i,j,k;
 	ulong	msgcnt;
@@ -809,6 +810,7 @@ void sbbs_t::qwksetptr(uint subnum, char *buf, int reset)
 void sbbs_t::qwkcfgline(char *buf,uint subnum)
 {
 	char	str[128];
+	char 	tmp[512];
 	uint 	x,y;
 	long	l;
 	ulong	qwk=useron.qwk;
diff --git a/src/sbbs3/readmail.cpp b/src/sbbs3/readmail.cpp
index dee2ebcf87b24b5c1c7d6648f41ab8fe004170b4..6b4bf62e404e7590ed3b30f899b41ecc550ae013 100644
--- a/src/sbbs3/readmail.cpp
+++ b/src/sbbs3/readmail.cpp
@@ -44,6 +44,7 @@ void sbbs_t::readmail(uint usernumber, int which)
 {
 	char	str[256],str2[256],str3[256],done=0,domsg=1
 			,*p,*tp,*sp,ch;
+	char 	tmp[512];
 	int		i,j;
 	int		mismatches=0,act;
 	ulong 	msgs,curmsg;
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 5fbf7866ace571db56fc251f4340b3605c3ed2dd..4eb8f0b808fe922e1ad80069edd07a14ea49a0a7 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -208,7 +208,6 @@ public:
 	int		lbuflen;		/* Number of characters in line buffer */
 	char 	latr;			/* Starting attribute of line buffer */
 	ulong	console;		/* Defines current Console settings */
-	char 	tmp[512];		/* Used all over as temp string */
 	char 	wordwrap[81];	/* Word wrap buffer */
 	time_t	now,			/* Used to store current time in Unix format */
 			answertime, 	/* Time call was answered */
diff --git a/src/sbbs3/scandirs.cpp b/src/sbbs3/scandirs.cpp
index 331bdb5cf0473e8645664f93198abca5fd700ee1..d50a48fd316b0dd310c351431a9efa2b1bb209e7 100644
--- a/src/sbbs3/scandirs.cpp
+++ b/src/sbbs3/scandirs.cpp
@@ -42,9 +42,10 @@
 /****************************************************************************/
 void sbbs_t::scandirs(long mode)
 {
-	char ch,str[256];
-	int s;
-	uint i,k;
+	char	ch,str[256];
+	char 	tmp[512];
+	int		s;
+	uint	i,k;
 
 	if(!usrlibs) return;
 	mnemonics(text[DirLibOrAll]);
@@ -108,9 +109,10 @@ void sbbs_t::scandirs(long mode)
 /****************************************************************************/
 void sbbs_t::scanalldirs(long mode)
 {
-	char str[256];
-	int s;
-	uint i,j,k,d;
+	char	str[256];
+	char 	tmp[512];
+	int		s;
+	uint	i,j,k,d;
 
 	if(!usrlibs) return;
 	k=0;
diff --git a/src/sbbs3/scansubs.cpp b/src/sbbs3/scansubs.cpp
index 40abec293ab000250e9c207282e3c68dfd3b2067..8acc334ff1c4c764cf04d3309769d8652d41d71c 100644
--- a/src/sbbs3/scansubs.cpp
+++ b/src/sbbs3/scansubs.cpp
@@ -42,8 +42,9 @@
 /****************************************************************************/
 void sbbs_t::scansubs(long mode)
 {
-	char ch,str[256];
-	uint i=0,found=0;
+	char	ch,str[256];
+	char 	tmp[512];
+	uint	i=0,found=0;
 
 	mnemonics(text[SubGroupOrAll]);
 	ch=(char)getkeys("SGA\r",0);
@@ -108,8 +109,9 @@ void sbbs_t::scansubs(long mode)
 /****************************************************************************/
 void sbbs_t::scanallsubs(long mode)
 {
-	char str[256];
-	uint i,j,found=0;
+	char	str[256];
+	char 	tmp[512];
+	uint	i,j,found=0;
 
 	if(/* action==NODE_MAIN && */ mode&(SCAN_FIND|SCAN_TOYOU)) {
 		i=yesno(text[DisplayTitlesOnlyQ]);
diff --git a/src/sbbs3/sortdir.cpp b/src/sbbs3/sortdir.cpp
index 048bd25d2c4b735ee2be88ff3dad9736e87c12d6..31c71eee2a9c269ea9fa4d473467f9a7f9abf91d 100644
--- a/src/sbbs3/sortdir.cpp
+++ b/src/sbbs3/sortdir.cpp
@@ -42,12 +42,13 @@
 /****************************************************************************/
 void sbbs_t::resort(uint dirnum)
 {
-	char str[25],ixbfname[128],datfname[128],exbfname[128],txbfname[128]
-		,ext[512],nulbuf[512];
-	uchar HUGE16 *ixbbuf, HUGE16 *datbuf;
-	uchar HUGE16 *ixbptr[MAX_FILES];
-	int ixbfile,datfile,exbfile,txbfile,i,j;
-	long ixblen,datlen,offset,newoffset,l;
+	char	str[25],ixbfname[128],datfname[128],exbfname[128],txbfname[128]
+			,ext[512],nulbuf[512];
+	char 	tmp[512];
+	uchar*	ixbbuf, *datbuf;
+	uchar*	ixbptr[MAX_FILES];
+	int		ixbfile,datfile,exbfile,txbfile,i,j;
+	long	ixblen,datlen,offset,newoffset,l;
 
 	memset(nulbuf,0,512);
 	bprintf(text[ResortLineFmt],cfg.lib[cfg.dir[dirnum]->lib]->sname,cfg.dir[dirnum]->sname);
diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp
index 0e0b0b426546a5da4af147519fd9af0157699a46..e416869ac579c119acbb96d40db07487a2931270 100644
--- a/src/sbbs3/str.cpp
+++ b/src/sbbs3/str.cpp
@@ -46,10 +46,11 @@ const char *mon[]={"Jan","Feb","Mar","Apr","May","Jun"
 /****************************************************************************/
 void sbbs_t::userlist(char mode)
 {
-	char name[256],sort=0;
-	int i,j,k,users=0;
-	char *line[1000];
-	user_t user;
+	char	name[256],sort=0;
+	char 	tmp[512];
+	int		i,j,k,users=0;
+	char *	line[1000];
+	user_t	user;
 
 	if(lastuser(&cfg)<=1000)
 		sort=yesno(text[SortAlphaQ]);
@@ -800,8 +801,9 @@ bool sbbs_t::trashcan(char *insearch, char *name)
 void sbbs_t::errormsg(int line, char *source, char action, char *object
 					  ,ulong access, char *extinfo)
 {
-    char str[512];
-    char actstr[256];
+    char	str[512];
+	char 	tmp[512];
+    char	actstr[256];
 
 	if(errormsg_inside)
 		return;
diff --git a/src/sbbs3/text_sec.cpp b/src/sbbs3/text_sec.cpp
index debc44f3fc0d1662f2b57d9c017c50064513788b..cfafe917bff041a5b576c50efdcd7913f69e6c9b 100644
--- a/src/sbbs3/text_sec.cpp
+++ b/src/sbbs3/text_sec.cpp
@@ -49,6 +49,7 @@ int sbbs_t::text_sec()
 {
 	char	str[256],usemenu
 			,*file[MAX_TXTFILES],addpath[83],addstr[83],*buf,ch;
+	char 	tmp[512];
 	long	i,j,usrsec[MAX_TXTSECS],usrsecs,cursec;
     long    l,length;
     FILE    *stream;
diff --git a/src/sbbs3/tmp_xfer.cpp b/src/sbbs3/tmp_xfer.cpp
index eade79f7a980bf7935633dc73edd06ad1b017111..658d4011a83a41091bfef54ce8a192fdb7593cbb 100644
--- a/src/sbbs3/tmp_xfer.cpp
+++ b/src/sbbs3/tmp_xfer.cpp
@@ -43,13 +43,14 @@
 /*****************************************************************************/
 void sbbs_t::temp_xfer()
 {
-    char str[256],tmp2[256],done=0,ch;
-    uint i,dirnum=cfg.total_dirs,j,files;
-    ulong bytes;
-	ulong space;
-    time_t start,end,t;
-    file_t f;
-	glob_t g;
+    char	str[256],tmp2[256],done=0,ch;
+	char 	tmp[512];
+    uint	i,dirnum=cfg.total_dirs,j,files;
+    ulong	bytes;
+	ulong	space;
+    time_t	start,end,t;
+    file_t	f;
+	glob_t	g;
 	struct	tm * tm;
 
 	if(!usrlibs)
diff --git a/src/sbbs3/un_qwk.cpp b/src/sbbs3/un_qwk.cpp
index 4038fcbab04a6ac02da79393d4591a1099308537..fac926b2d76ff85f62ef0b8559ebb74db98ff262 100644
--- a/src/sbbs3/un_qwk.cpp
+++ b/src/sbbs3/un_qwk.cpp
@@ -44,6 +44,7 @@
 bool sbbs_t::unpack_qwk(char *packet,uint hubnum)
 {
 	char	str[256],fname[128];
+	char 	tmp[512];
 	uchar	block[128];
 	int 	k,file;
 	uint	i,j,n,lastsub=INVALID_SUB;
diff --git a/src/sbbs3/un_rep.cpp b/src/sbbs3/un_rep.cpp
index f1cfce9103ffc6a55e9a6c527d6857541bf80a29..d918b126fb8724d78d42aafe8ff3bd60fc8a50df 100644
--- a/src/sbbs3/un_rep.cpp
+++ b/src/sbbs3/un_rep.cpp
@@ -45,6 +45,7 @@ bool sbbs_t::unpack_rep(char* repfile)
 {
 	char	str[256],fname[128]
 			,*AttemptedToUploadREPpacket="Attempted to upload REP packet";
+	char 	tmp[512];
 	char	block[128];
 	int 	file;
 	uint	i,j,k,lastsub=INVALID_SUB;
diff --git a/src/sbbs3/upload.cpp b/src/sbbs3/upload.cpp
index ccd508acbd9102455ad5f778c96ab6d62fdabf6d..7cf8ab0b03be577e740959ddef3de6fab5fb2c85 100644
--- a/src/sbbs3/upload.cpp
+++ b/src/sbbs3/upload.cpp
@@ -252,6 +252,7 @@ void sbbs_t::upload(uint dirnum)
 {
 	char	str[256],src[256]={""},descbeg[25]={""},descend[25]={""},path[256]
 				,fname[13],keys[256],ch,*p;
+	char 	tmp[512];
     time_t	start,end;
     uint	i,j,k,destuser[MAX_USERXFER],destusers=0;
 	int		file;
diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp
index 44eb64cadf069a0889b4ac265a71fc0469d50a1a..7a573536bf983e4c869b05088aeb65c8308821ee 100644
--- a/src/sbbs3/useredit.cpp
+++ b/src/sbbs3/useredit.cpp
@@ -52,6 +52,7 @@
 void sbbs_t::useredit(int usernumber, int local)
 {
 	char	str[256],tmp2[256],tmp3[256],c,stype=SEARCH_TXT;
+	char 	tmp[512];
 	char	search[256]={""},artxt[128]={""};
 	uchar	*ar=NULL;
 	uint	i,j,k;
@@ -731,8 +732,9 @@ int sbbs_t::searchdn(char *search,int usernum)
 /****************************************************************************/
 void sbbs_t::maindflts(user_t* user)
 {
-	char str[256],ch;
-	int i;
+	char	str[256],ch;
+	char 	tmp[512];
+	int		i;
 
 	action=NODE_DFLT;
 	while(online) {
diff --git a/src/sbbs3/viewfile.cpp b/src/sbbs3/viewfile.cpp
index 7b40502341552ced59f5aa2e828603257b1e9bd5..1b8bd1f00650116fd4dab457ae1cd9ffa47750e2 100644
--- a/src/sbbs3/viewfile.cpp
+++ b/src/sbbs3/viewfile.cpp
@@ -45,7 +45,8 @@
 /****************************************************************************/
 int sbbs_t::viewfile(file_t* f, int ext)
 {
-	char ch,str[256];
+	char	ch,str[256];
+	char 	tmp[512];
 
 	curdirnum=f->dir;	/* for ARS */
 	while(online) {
@@ -82,8 +83,9 @@ int sbbs_t::viewfile(file_t* f, int ext)
 /*****************************************************************************/
 void sbbs_t::viewfiles(uint dirnum, char *fspec)
 {
-    char viewcmd[256];
-    int i;
+    char	viewcmd[256];
+	char 	tmp[512];
+    int		i;
 
 	curdirnum=dirnum;	/* for ARS */
 	sprintf(viewcmd,"%s%s",cfg.dir[dirnum]->path,fspec);
@@ -108,8 +110,9 @@ void sbbs_t::viewfiles(uint dirnum, char *fspec)
 /****************************************************************************/
 void sbbs_t::viewfilecontents(file_t* f)
 {
-	char str[128],cmd[128];
-	int i;
+	char	str[128],cmd[128];
+	char 	tmp[512];
+	int		i;
 
 	if(f->size<=0L) {
 		bputs(text[FileNotThere]);
diff --git a/src/sbbs3/writemsg.cpp b/src/sbbs3/writemsg.cpp
index 63ec9e2738075e90e54c4f3db120ce626d99bdd2..0184fc92df3835a6c1c41017cc1accdc0935f15b 100644
--- a/src/sbbs3/writemsg.cpp
+++ b/src/sbbs3/writemsg.cpp
@@ -51,12 +51,13 @@ void quotestr(char *str);
 bool sbbs_t::writemsg(char *fname, char *top, char *title, long mode, int subnum
 	,char *dest)
 {
-	char str[256],quote[128],msgtmp[32],c,HUGE16 *buf,ex_mode=0,*p,*tp
-		,useron_level;
-	int i,j,file,linesquoted=0;
-	long length,qlen,qtime;
-	ulong l;
-	FILE *stream;
+	char	str[256],quote[128],msgtmp[32],c,HUGE16 *buf,ex_mode=0,*p,*tp
+				,useron_level;
+	char 	tmp[512];
+	int		i,j,file,linesquoted=0;
+	long	length,qlen,qtime;
+	ulong	l;
+	FILE *	stream;
 
 	useron_level=useron.level;
 
@@ -493,9 +494,10 @@ void sbbs_t::removeline(char *str, char *str2, char num, char skip)
 /*****************************************************************************/
 ulong sbbs_t::msgeditor(char *buf, char *top, char *title)
 {
-	int i,j,line,lines=0,maxlines;
-	char strin[256],**str,done=0;
-    ulong l,m;
+	int		i,j,line,lines=0,maxlines;
+	char	strin[256],**str,done=0;
+	char 	tmp[512];
+    ulong	l,m;
 
 	if(online==ON_REMOTE) {
 		rioctl(IOCM|ABORT);
@@ -844,8 +846,9 @@ void sbbs_t::copyfattach(uint to, uint from, char *title)
 /****************************************************************************/
 void sbbs_t::forwardmail(smbmsg_t *msg, int usernumber)
 {
-	char str[256],touser[128];
-	int i;
+	char		str[256],touser[128];
+	char 		tmp[512];
+	int			i;
 	node_t		node;
 	msghdr_t	hdr=msg->hdr;
 	idxrec_t	idx=msg->idx;
@@ -933,9 +936,10 @@ void sbbs_t::forwardmail(smbmsg_t *msg, int usernumber)
 /****************************************************************************/
 void sbbs_t::automsg()
 {
-    char str[256],buf[300],anon=0;
-	char automsg[MAX_PATH];
-    int file;
+    char	str[256],buf[300],anon=0;
+	char 	tmp[512];
+	char	automsg[MAX_PATH];
+    int		file;
 
 	sprintf(automsg,"%smsgs/auto.msg",cfg.data_dir);
 	while(online) {
diff --git a/src/sbbs3/xtrn_sec.cpp b/src/sbbs3/xtrn_sec.cpp
index 46e62871aea0285b683e6388daab95600bb2581d..0c67f6e4d9a59f382cd47ed1401e9bb3e5f61d14 100644
--- a/src/sbbs3/xtrn_sec.cpp
+++ b/src/sbbs3/xtrn_sec.cpp
@@ -247,7 +247,8 @@ time_t juliantounix(ulong j)
 void sbbs_t::xtrndat(char *name, char *dropdir, uchar type, ulong tleft
 					,ulong misc)
 {
-	char str[1024],tmp2[128],c,*p;
+	char	str[1024],tmp2[128],c,*p;
+	char 	tmp[512];
 	int		i,file;
 	ushort	w;
 	long	l;
@@ -1133,11 +1134,12 @@ void sbbs_t::xtrndat(char *name, char *dropdir, uchar type, ulong tleft
 /****************************************************************************/
 void sbbs_t::moduserdat(uint xtrnnum)
 {
-	char str[256],path[256],c,startup[128];
-	uint i;
-	long mod;
-    int file;
-    FILE *stream;
+	char	str[256],path[256],c,startup[128];
+	char 	tmp[512];
+	uint	i;
+	long	mod;
+    int		file;
+    FILE *	stream;
 
 	sprintf(startup,"%s/",cfg.xtrn[xtrnnum]->path);
 	if(cfg.xtrn[xtrnnum]->type==XTRN_RBBS) {