diff --git a/src/sbbs3/email.cpp b/src/sbbs3/email.cpp
index 006228d86bae137c01806229f70124a028633ece..1139863dc55d22d0d3b95b629d712e0455e408c3 100644
--- a/src/sbbs3/email.cpp
+++ b/src/sbbs3/email.cpp
@@ -144,7 +144,9 @@ bool sbbs_t::email(int usernumber, char *top, char *subj, long mode)
 			if(x<cfg.total_prots)	/* This should be always */
 				protocol(cmdstr(cfg.prot[x]->ulcmd,str2,nulstr,NULL),true); 
 		}
-		fexistcase(str2);
+		sprintf(tmp,"%s%s",cfg.temp_dir,title);
+		if(!fexistcase(str2) && fexistcase(tmp))
+			mv(tmp,str2,0);
 		l=flength(str2);
 		if(l>0)
 			bprintf(text[FileNBytesReceived],title,ultoac(l,tmp));
diff --git a/src/sbbs3/fido.cpp b/src/sbbs3/fido.cpp
index 64f17c984538321ce70cf32db1ee771022327c57..91c051bfe9e4bc1da947c8153acf54822f74d64a 100644
--- a/src/sbbs3/fido.cpp
+++ b/src/sbbs3/fido.cpp
@@ -254,7 +254,9 @@ bool sbbs_t::netmail(char *into, char *title, long mode)
 			if(x<cfg.total_prots)	/* This should be always */
 				protocol(cmdstr(cfg.prot[x]->ulcmd,subj,nulstr,NULL),true); 
 		}
-		fexistcase(subj);
+		sprintf(tmp,"%s%s",cfg.temp_dir,title);
+		if(!fexistcase(subj) && fexistcase(tmp))
+			mv(tmp,subj,0);
 		l=flength(subj);
 		if(l>0)
 			bprintf(text[FileNBytesReceived],fname,ultoac(l,tmp));
diff --git a/src/sbbs3/netmail.cpp b/src/sbbs3/netmail.cpp
index 9ca0dc81ae43883459ad2aaa67d499449309232c..0fc2e500783e6bcc2e0bd5e6347ddc890213b42f 100644
--- a/src/sbbs3/netmail.cpp
+++ b/src/sbbs3/netmail.cpp
@@ -132,7 +132,9 @@ bool sbbs_t::inetmail(char *into, char *subj, long mode)
 			if(x<cfg.total_prots)	/* This should be always */
 				protocol(cmdstr(cfg.prot[x]->ulcmd,str2,nulstr,NULL),true); 
 		}
-		fexistcase(str2);
+		sprintf(tmp,"%s%s",cfg.temp_dir,title);
+		if(!fexistcase(str2) && fexistcase(tmp))
+			mv(tmp,str2,0);
 		l=flength(str2);
 		if(l>0)
 			bprintf(text[FileNBytesReceived],title,ultoac(l,tmp));