--- qmail-validate.c (revision 359) +++ qmail-validate.c (working copy) @@ -74,7 +74,12 @@ if (dict_get(&rh, &tmp)) break; /* NOTE: qmail-newmrh automatically lowercases the keys in this CDB */ if (mrh_fd != -1 && cdb_find(&mrh, tmp.s, tmp.len) == 1) break; - if ((at = str_findnext(&tmp, '.', 1)) <= 0) return &resp_rh; + if ((at = str_findnext(&tmp, '.', 1)) <= 0) { + if (relayclient != 0 || authenticated) + return 0; + else + return &resp_rh; + } str_lcut(&tmp, at); } } --- std-handle.c (revision 359) +++ std-handle.c (working copy) @@ -137,10 +137,10 @@ return resp; } else if (relayclient != 0) str_cats(recip, relayclient); else if (authenticated) resp = 0; - else if ((resp = backend_validate_recipient(recip)) != 0) { + if ((resp = backend_validate_recipient(recip)) != 0) { if (!number_ok(resp)) return resp; }