Net::DNS 1.01 has an undocumented non-backwards-compatible (but, according to the author, intentional) change: the "recursion desired" bit isn't set by default in new packets. However, SpamAssassin relies on this when constructing RBL queries. diff -x config.log -x config.status -ru tmp/Mail-SpamAssassin-3.4.1/lib/Mail/SpamAssassin/DnsResolver.pm work/Mail-SpamAssassin-3.4.1/lib/Mail/SpamAssassin/DnsResolver.pm --- tmp/Mail-SpamAssassin-3.4.1/lib/Mail/SpamAssassin/DnsResolver.pm 2015-04-28 20:56:49.000000000 +0100 +++ work/Mail-SpamAssassin-3.4.1/lib/Mail/SpamAssassin/DnsResolver.pm 2015-07-15 20:53:55.594508162 +0100 @@ -575,6 +575,7 @@ { $1 eq '\\' ? "\\$1" : sprintf("\\%03d",ord($1)) }xgse; $packet = Net::DNS::Packet->new($domain, $type, $class); + $packet->header->rd(1); # a bit noisy, so commented by default... #dbg("dns: new DNS packet time=%.3f domain=%s type=%s id=%s",