diff -up cups-1.4.6/cups/http-addr.c.res_init cups-1.4.6/cups/http-addr.c --- cups-1.4.6/cups/http-addr.c.res_init 2009-04-20 22:37:14.000000000 +0100 +++ cups-1.4.6/cups/http-addr.c 2011-01-10 16:08:49.506358955 +0000 @@ -253,7 +253,8 @@ httpAddrLookup( if (error) { - if (error == EAI_FAIL) + if (error == EAI_FAIL || error == EAI_AGAIN || error == EAI_NODATA || + error == EAI_NONAME) cg->need_res_init = 1; return (httpAddrString(addr, name, namelen)); diff -up cups-1.4.6/cups/http-addrlist.c.res_init cups-1.4.6/cups/http-addrlist.c --- cups-1.4.6/cups/http-addrlist.c.res_init 2009-04-20 22:37:14.000000000 +0100 +++ cups-1.4.6/cups/http-addrlist.c 2011-01-10 16:08:22.375947909 +0000 @@ -373,7 +373,8 @@ httpAddrGetList(const char *hostname, /* freeaddrinfo(results); } - else if (error == EAI_FAIL) + else if (error == EAI_FAIL || error == EAI_AGAIN || error == EAI_NODATA || + error == EAI_NONAME) cg->need_res_init = 1; #else