diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
--- a/sysdeps/posix/getaddrinfo.c 2012-03-20 21:31:14.177358937 -0600
+++ b/sysdeps/posix/getaddrinfo.c 2012-03-21 09:13:17.198290683 -0600
@@ -560,15 +563,11 @@ gaih_inet (const char *name, const struc
int no_more;
int old_res_options;
- /* If we do not have to look for IPv4 and IPv6 together, use
- the simple, old functions. */
- if ((req->ai_family == AF_INET
- || (req->ai_family == AF_INET6
- && ((req->ai_flags & AI_V4MAPPED) == 0
- || (req->ai_flags & AI_ALL) == 0)))
- && (req->ai_flags & AI_CANONNAME) == 0)
+ /* If we do not have to look for IPv6 addresses, use
+ the simple, old functions, which do not support
+ IPv6 scope ids. */
+ if (req->ai_family == AF_INET)
{
- int family = req->ai_family;
size_t tmpbuflen = 512;
assert (tmpbuf == NULL);
tmpbuf = alloca_account (tmpbuflen, alloca_used);