diff -ruN qmail-1.03-7.07/qmail-smtpd.c qmail-1.03-7.08/qmail-smtpd.c
--- qmail-1.03-7.07/qmail-smtpd.c	2008-06-02 21:38:14.000000000 -0400
+++ qmail-1.03-7.08/qmail-smtpd.c	2008-11-14 12:25:36.000000000 -0500
@@ -593,9 +594,11 @@
   unsigned int random;
   int j;
 
+  if (str_equal(addr.s,"#@[]")) return 0;
   if (!mfchk) return 0;
   random = now() + (getpid() << 16);
   j = byte_rchr(addr.s,addr.len,'@') + 1;
+  if (addr.len == 1) return 0;
   if (j < addr.len) {
     stralloc_copys(&sa, addr.s + j);
     dns_init(0);
@@ -608,8 +611,8 @@
     if(mfchk>2) strerr_warn5(title.s,"MFCHECK pass [",remoteip,"] ",sa.s,0);
     return 0;
   }
-  if(mfchk>2) strerr_warn5(title.s,"MFCHECK bypassed [",remoteip,"] ",addr.s,0);
-  return 0;
+  if(mfchk>1) strerr_warn5(title.s,"MFCHECK invalid [",remoteip,"] ",addr.s,0);
+  return DNS_HARD;
 }
 
 void vrtlog(l,a,b)
