use the temporary port, not always the global one over and over again --- pdnsd-1.2.7.orig/src/dns_query.c 2008-09-01 15:56:51.000000000 +0200 +++ pdnsd-1.2.7/src/dns_query.c 2010-03-19 21:44:38.837858828 +0100 @@ -650,7 +650,7 @@ static int bind_socket(int s) ELSE_IPV6 { memset(&sin.sin6,0,sizeof(struct sockaddr_in6)); sin.sin6.sin6_family=AF_INET6; - sin.sin6.sin6_port=htons(global.port); + sin.sin6.sin6_port=htons(prt); sin.sin6.sin6_flowinfo=IPV6_FLOWINFO; SET_SOCKA_LEN6(sin.sin6); sinl=sizeof(struct sockaddr_in6);