diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index 00737643c6eedf830d290f61472dcf44ac792ec3..c4ac492af6ef287a62177f1fbb3e6b5a0b3d4b15 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -3506,8 +3506,11 @@ int fmsgtosmsg(char* fbuf, fmsghdr_t* hdr, uint user, uint subnum)
 				m=l;
 				while(m<length && fbuf[m]!='\r') m++;
 				while(m && fbuf[m-1]<=' ' && fbuf[m-1]>=0) m--;
-				if(m>l)
+				if(m>l) {
 					smb_hfield(&msg, FIDOCHARSET, (ushort)(m-l), fbuf+l);
+					if(smb_msg_is_utf8(&msg))
+						msg.hdr.auxattr |= MSG_HFIELDS_UTF8;
+				}
 			}
 
 			else if(!strncmp((char *)fbuf+l+1, "CHARSET:", 8)) {