diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp
index a4d695a96f593c9fb019515b3bf45553947858b0..26bf463cbc808811c5349e1c86a173e29f146634 100644
--- a/src/sbbs3/logon.cpp
+++ b/src/sbbs3/logon.cpp
@@ -497,7 +497,7 @@ bool sbbs_t::logon()
 
 	if(cfg.sys_logon.cmd[0] && !(cfg.sys_logon.misc & EVENT_DISABLED)) {				/* execute system logon event */
 		lprintf(LOG_DEBUG, "executing logon event: %s", cfg.sys_logon.cmd);
-		external(cmdstr(cfg.sys_logon.cmd,nulstr,nulstr,NULL), EX_STDOUT | cfg.sys_logon.misc); /* EX_SH */
+		external(cmdstr(cfg.sys_logon.cmd,nulstr,nulstr,NULL,cfg.sys_logon.misc), EX_STDOUT | cfg.sys_logon.misc); /* EX_SH */
 	}
 
 	if(sys_status&SS_QWKLOGON)
diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp
index fbab736b61467061183d50d88902558b90f80044..046e26b393850e0a86db367d9c62a1efcd707120 100644
--- a/src/sbbs3/logout.cpp
+++ b/src/sbbs3/logout.cpp
@@ -73,7 +73,7 @@ void sbbs_t::logout(bool logged_in)
 	if(!online) {		/* NOT re-login */
 		if(cfg.sys_logout.cmd[0] && !(cfg.sys_logout.misc & EVENT_DISABLED)) {		/* execute system logout event */
 			lprintf(LOG_DEBUG, "executing logout event: %s", cfg.sys_logout.cmd);
-			external(cmdstr(cfg.sys_logout.cmd,nulstr,nulstr,NULL), EX_OUTL | EX_OFFLINE | cfg.sys_logout.misc);
+			external(cmdstr(cfg.sys_logout.cmd,nulstr,nulstr,NULL,cfg.sys_logout.misc), EX_OUTL | EX_OFFLINE | cfg.sys_logout.misc);
 		}
 	}
 
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 245b2a2dd5166fba3331daed3f1fa3bcab48db21..48f4a9a64c8b741f414bbd6672f00dcdf16b1e5c 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -3106,7 +3106,7 @@ void event_thread(void* arg)
 						sbbs->online=ON_LOCAL;
 						sbbs->console|=CON_L_ECHO;
 						sbbs->logentry("!:","Run node daily event");
-						const char* cmd = sbbs->cmdstr(sbbs->cfg.node_daily.cmd,nulstr,nulstr,NULL);
+						const char* cmd = sbbs->cmdstr(sbbs->cfg.node_daily.cmd,nulstr,nulstr,NULL,sbbs->cfg.node_daily.misc);
 						int result = sbbs->external(cmd, EX_OFFLINE | sbbs->cfg.node_daily.misc);
 						sbbs->lprintf(result ? LOG_ERR : LOG_INFO, "Node daily event: '%s' returned %d", cmd, result);
 						sbbs->console&=~CON_L_ECHO;
@@ -3272,7 +3272,7 @@ void event_thread(void* arg)
 					int ex_mode = EX_OFFLINE|EX_SH; /* sh for Unix perl scripts */
 					if(sbbs->cfg.qhub[i]->misc & QHUB_NATIVE)
 						ex_mode |= EX_NATIVE;
-					const char* cmd = sbbs->cmdstr(sbbs->cfg.qhub[i]->call, sbbs->cfg.qhub[i]->id,sbbs->cfg.qhub[i]->id,NULL);
+					const char* cmd = sbbs->cmdstr(sbbs->cfg.qhub[i]->call, sbbs->cfg.qhub[i]->id,sbbs->cfg.qhub[i]->id,NULL,ex_mode);
 					int result = sbbs->external(cmd, ex_mode);
 					sbbs->lprintf(result ? LOG_ERR : LOG_INFO, "Call-out to: %s (%s) returned %d", sbbs->cfg.qhub[i]->id, cmd, result);
 					sbbs->console&=~CON_L_ECHO;
@@ -3447,7 +3447,7 @@ void event_thread(void* arg)
 					ex_mode|=(sbbs->cfg.event[i]->misc&EX_NATIVE);
 					sbbs->online=ON_LOCAL;
 					sbbs->console|=CON_L_ECHO;
-					cmd = sbbs->cmdstr(cmd, nulstr, sbbs->cfg.event[i]->dir, NULL);
+					cmd = sbbs->cmdstr(cmd, nulstr, sbbs->cfg.event[i]->dir, NULL, ex_mode);
 					sbbs->lprintf(LOG_INFO,"Running %s%stimed event: %s"
 						,native_executable(&sbbs->cfg, cmd, ex_mode) ? "native ":"16-bit DOS "
 						,(ex_mode&EX_BG)		? "background ":""
@@ -4806,10 +4806,8 @@ void sbbs_t::daily_maint(void)
 			&& !(user.misc&(DELETED|INACTIVE))	 /* alive */
 			&& (cfg.sys_autodel && (now-user.laston)/(int)(24L*60L*60L)
 			> cfg.sys_autodel)) {			/* Inactive too long */
-			SAFEPRINTF4(str,"DAILY: Auto-Deleted %s (%s) #%u due to inactivity > %u days"
-				,user.alias, user.name, user.number, cfg.sys_autodel);
-			lputs(LOG_NOTICE, str);
-			delallmail(user.number, MAIL_ANY);
+			lprintf(LOG_NOTICE, "DAILY: Auto-Deleting user: %s (%s) #%u due to inactivity > %u days (pending e-mail: %d)"
+				,user.alias, user.name, user.number, cfg.sys_autodel, delallmail(user.number, MAIL_ANY));
 			putusername(&cfg,user.number,nulstr);
 			putusermisc(user.number, user.misc | DELETED);
 		}
@@ -4827,14 +4825,14 @@ void sbbs_t::daily_maint(void)
 			if((i=smb_locksmbhdr(&smb))!=0)
 				errormsg(WHERE,ERR_LOCK,smb.file,i,smb.last_error);
 			else
-				lprintf(LOG_INFO, "DAILY: Removed %d messages", delmail(0, MAIL_ALL));
+				lprintf(LOG_INFO, "DAILY: Removed %d e-mail messages", delmail(0, MAIL_ALL));
 		}
 		smb_close(&smb);
 	}
 
 	if(cfg.sys_daily.cmd[0] && !(cfg.sys_daily.misc & EVENT_DISABLED)) {
 		lputs(LOG_INFO, "DAILY: Running system event");
-		const char* cmd = cmdstr(cfg.sys_daily.cmd,nulstr,nulstr,NULL);
+		const char* cmd = cmdstr(cfg.sys_daily.cmd,nulstr,nulstr,NULL,cfg.sys_daily.misc);
 		online = ON_LOCAL;
 		int result = external(cmd, EX_OFFLINE | cfg.sys_daily.misc);
 		online = false;
@@ -4842,7 +4840,7 @@ void sbbs_t::daily_maint(void)
 	}
 	if((sys_status & SS_NEW_MONTH) && cfg.sys_monthly.cmd[0] && !(cfg.sys_monthly.misc & EVENT_DISABLED)) {
 		lputs(LOG_INFO, "DAILY: Running monthly event");
-		const char* cmd = cmdstr(cfg.sys_monthly.cmd,nulstr,nulstr,NULL);
+		const char* cmd = cmdstr(cfg.sys_monthly.cmd,nulstr,nulstr,NULL,cfg.sys_monthly.misc);
 		online = ON_LOCAL;
 		int result = external(cmd, EX_OFFLINE | cfg.sys_monthly.misc);
 		online = false;