diff -rup c/resolv/res_send.c d/resolv/res_send.c --- c/resolv/res_send.c 2012-01-01 05:16:32.000000000 -0700 +++ d/resolv/res_send.c 2012-03-30 12:39:30.862467628 -0600 @@ -409,6 +409,7 @@ __libc_res_nsend(res_state statp, const */ if (EXT(statp).nsinit == 0) { unsigned char map[MAXNS]; + unsigned int ext_total_nscount; memset (map, MAXNS, sizeof (map)); for (n = 0; n < MAXNS; n++) { @@ -422,8 +423,9 @@ __libc_res_nsend(res_state statp, const } } n = statp->nscount; - if (statp->nscount > EXT(statp).nscount) - for (n = EXT(statp).nscount, ns = 0; + ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; + if (statp->nscount > ext_total_nscount) + for (n = ext_total_nscount, ns = 0; n < statp->nscount; n++) { while (ns < MAXNS && EXT(statp).nsmap[ns] != MAXNS)