diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index d6407decfb12f0b6b2e77c737d6a84970734e45f..7881e7fd77cee515ff13ed78611edd9b5736dacb 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -3616,7 +3616,7 @@ int fmsgtosmsg(char* fbuf, fmsghdr_t* hdr, uint user, uint subnum)
 		get_msgid(&scfg,subnum,&msg,msg_id,sizeof(msg_id));
 		smb_hfield_str(&msg,RFC822MSGID,msg_id);
 	}
-	if(smbfile->status.max_crcs==0)
+	if(smbfile->status.max_crcs==0 || (subnum == INVALID_SUB && user == 0))
 		dupechk_hashes&=~(1<<SMB_HASH_SOURCE_BODY);
 	/* Bad echo area collects a *lot* of messages, and thus, hashes - so no dupe checking */
 	if(cfg.badecho>=0 && subnum==cfg.area[cfg.badecho].sub)