---- whois-4.7.14/whois.c.orig 2006-07-21 14:27:55.524440000 +0200
-+++ whois-4.7.14/whois.c 2006-07-21 14:29:06.354440000 +0200
-@@ -695,7 +695,12 @@
+--- whois-4.7.32/whois.c~ 2009-03-17 13:14:25.938965061 +0100
++++ whois-4.7.32/whois.c 2009-03-17 13:15:54.058956261 +0100
+@@ -786,8 +786,12 @@
hints.ai_socktype = SOCK_STREAM;
- hints.ai_flags = AI_IDN;
+ hints.ai_flags = AI_ADDRCONFIG | AI_IDN;
-- if ((err = getaddrinfo(server, port ? port : "nicname", &hints, &res)) != 0)
+- if ((err = getaddrinfo(server, port ? port : "nicname", &hints, &res))
+- != 0) {
+ err = getaddrinfo(server, port ? port : "nicname", &hints, &res);
+ if (err == EAI_BADFLAGS) {
-+ hints.ai_flags &= ~AI_IDN;
-+ err = getaddrinfo(server, port ? port : "nicname", &hints, &res);
++ hints.ai_flags &= ~AI_IDN;
++ err = getaddrinfo(server, port ? port : "nicname", &hints, &res);
+ }
-+ if (err != 0)
- err_quit("getaddrinfo(%s): %s", server, gai_strerror(err));
- for (ai = res; ai; ai = ai->ai_next) {
- if ((fd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol)) < 0)
++ if (err != 0) {
+ if (err == EAI_SYSTEM)
+ err_sys("getaddrinfo(%s)", server);
+ else