diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index 1724129032cc3750bb52d3e03ab17dc36f8693a3..9de17c5ce2f291296073faef17eb616a84f82321 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -197,9 +197,6 @@ bool sbbs_t::logon()
 	useron.logontime=(time32_t)logontime;
 	last_ns_time=ns_time=useron.ns_time;
 	// ns_time-=(useron.tlast*60); /* file newscan time == last logon time */
-	delfiles(cfg.temp_dir,ALLFILES);
-	safe_snprintf(str, sizeof(str), "%smsgs/n%3.3u.msg",cfg.data_dir,cfg.node_num);
-	remove(str);            /* remove any pending node messages */
 
 	if(!SYSOP && online==ON_REMOTE && !(sys_status&SS_QWKLOGON)) {
 		rioctl(IOCM|ABORT);	/* users can't abort anything */
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 019810d02a5e80f53d85324cbee7cf0745b5c206..d96b92a73438f45742daf31cbe202394d8d25477 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -3564,6 +3564,16 @@ bool sbbs_t::init()
 		thisnode.misc&=(NODE_EVENT|NODE_LOCK|NODE_RRUN);
 		criterrs=thisnode.errors;
 		putnodedat(cfg.node_num,&thisnode);
+
+		// remove any pending node messages
+		safe_snprintf(str, sizeof(str), "%smsgs/n%3.3u.msg",cfg.data_dir,cfg.node_num);
+		remove(str);
+		// Delete any stale temporary files (with potentially sensitive content)
+		delfiles(cfg.temp_dir,ALLFILES);
+		safe_snprintf(str, sizeof(str), "%sMSGTMP", cfg.node_dir);
+		removecase(str);
+		safe_snprintf(str, sizeof(str), "%sQUOTES.TXT", cfg.node_dir);
+		removecase(str);
 	}
 
 	/* Reset COMMAND SHELL */
diff --git a/src/sbbs3/netmail.cpp b/src/sbbs3/netmail.cpp
index 8a524f84bd11941eeab524ed9e7584d57ef424c6..8021520ccaf0309c13d68f9c263a25688d92f340 100644
--- a/src/sbbs3/netmail.cpp
+++ b/src/sbbs3/netmail.cpp
@@ -1035,7 +1035,7 @@ bool sbbs_t::inetmail(const char *into, const char *subj, int mode, smb_t* resmb
 			mode |= WM_QUOTE;
 	}
 
-	SAFEPRINTF(msgpath,"%snetmail.msg",cfg.node_dir);
+	msg_tmp_fname(useron.xedit, msgpath, sizeof(msgpath));
 	if(!writemsg(msgpath,nulstr,title,WM_NETMAIL|mode,INVALID_SUB, to_list, /* from: */your_addr, &editor, &charset)) {
 		strListFree(&rcpt_list);
 		bputs(text[Aborted]);
@@ -1313,7 +1313,7 @@ bool sbbs_t::qnetmail(const char *into, const char *subj, int mode, smb_t* resmb
 			mode |= WM_QUOTE;
 	}
 
-	SAFEPRINTF(msgpath,"%snetmail.msg",cfg.node_dir);
+	msg_tmp_fname(useron.xedit, msgpath, sizeof(msgpath));
 	if(!writemsg(msgpath,nulstr,title, (mode|WM_QWKNET|WM_NETMAIL) ,INVALID_SUB,to,/* from: */useron.alias, &editor, &charset)) {
 		bputs(text[Aborted]);
 		return(false);