diff --git a/src/sbbs3/chksmb.c b/src/sbbs3/chksmb.c
index 6980db82bbdd30ea1a9fdec3d08974f46de6251e..b1317e363f104235dbd9dfda85866d90ab05cf8a 100644
--- a/src/sbbs3/chksmb.c
+++ b/src/sbbs3/chksmb.c
@@ -437,7 +437,8 @@ int main(int argc, char **argv)
 					subjcrc++; 
 				}
 				if(smb.status.attr&SMB_EMAIL 
-					&& msg.from_ext && msg.idx.from!=atoi(msg.from_ext)) {
+					&& (msg.from_ext!=NULL || msg.idx.from) 
+					&& (msg.from_ext==NULL || msg.idx.from!=atoi(msg.from_ext))) {
 					fprintf(stderr,"%sFrom extension mismatch\n",beep);
 					msgerr=TRUE;
 					if(extinfo)
@@ -457,7 +458,8 @@ int main(int argc, char **argv)
 					fromcrc++; 
 				}
 				if(smb.status.attr&SMB_EMAIL 
-					&& msg.to_ext && msg.idx.to!=atoi(msg.to_ext)) {
+					&& (msg.to_ext!=NULL || msg.idx.to) 
+					&& (msg.to_ext==NULL || msg.idx.to!=atoi(msg.to_ext))) {
 					fprintf(stderr,"%sTo extension mismatch\n",beep);
 					msgerr=TRUE;
 					if(extinfo)