diff -Nur Mail-SpamAssassin-3.4.0.orig/lib/Mail/SpamAssassin/DnsResolver.pm Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/DnsResolver.pm --- Mail-SpamAssassin-3.4.0.orig/lib/Mail/SpamAssassin/DnsResolver.pm 2014-02-07 01:36:28.000000000 -0700 +++ Mail-SpamAssassin-3.4.0/lib/Mail/SpamAssassin/DnsResolver.pm 2014-06-20 11:53:04.688979753 -0600 @@ -204,8 +204,10 @@ @ns_addr_port = @{$self->{conf}->{dns_servers}}; dbg("dns: servers set by config to: %s", join(', ',@ns_addr_port)); } elsif ($res) { # default as provided by Net::DNS, e.g. /etc/resolv.conf - @ns_addr_port = map(untaint_var("[$_]:" . $res->{port}), - @{$res->{nameservers}}); + my @ns = $res->UNIVERSAL::can('nameservers') ? $res->nameservers + : @{$res->{nameservers}}; + my $port = $res->UNIVERSAL::can('port') ? $res->port : $res->{port}; + @ns_addr_port = map(untaint_var("[$_]:" . $port), @ns); dbg("dns: servers obtained from Net::DNS : %s", join(', ',@ns_addr_port)); } return @ns_addr_port;