diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index fec1a43c08815bd5c2358a344e338c050e584d67..3309d6557199d68cb9b371338bc367d0920082e6 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -1699,6 +1699,8 @@ static void smtp_thread(void* arg)
 						system(cmdstr(p, msgtxt_fname, rcptlst_fname, proc_err_fname, str));
 						if(flength(proc_err_fname)>0)
 							break;
+						if(!fexist(msgtxt_fname) || !fexist(rcptlst_fname))
+							break;
 					}
 					fclose(proc_cfg);
 					if(flength(proc_err_fname)>0 
@@ -1720,6 +1722,12 @@ static void smtp_thread(void* arg)
 						remove(proc_err_fname);
 						continue;
 					}
+					if(!fexist(msgtxt_fname) || !fexist(rcptlst_fname)) {
+						lprintf("%04d SMTP external process removed %s"
+							,socket, fexist(msgtxt_fname)==FALSE ? "message text" : "recipient list");
+						sockprintf(socket,ok_rsp);
+						continue;
+					}
 				}
 
 				/* Re-open files */