- (stevesk) [channels.c] bug #164 patch from YOSHIFUJI Hideaki (changed
   setsockopt from debug to error for now).
diff --git a/channels.c b/channels.c
index 520bff8..3ac6901 100644
--- a/channels.c
+++ b/channels.c
@@ -2374,6 +2374,13 @@
 					continue;
 				}
 			}
+#ifdef IPV6_V6ONLY
+			if (ai->ai_family == AF_INET6) {
+				int on = 1;
+				if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on)) < 0)
+					error("setsockopt IPV6_V6ONLY: %.100s", strerror(errno));
+			}
+#endif
 			if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
 				debug("bind port %d: %.100s", port, strerror(errno));
 				close(sock);
@@ -2392,7 +2399,12 @@
 			if (num_socks == NUM_SOCKS)
 				break;
 #else
-			break;
+			if (x11_use_localhost) {
+				if (num_socks == NUM_SOCKS)
+					break;
+			} else {
+				break;
+			}
 #endif
 		}
 		freeaddrinfo(aitop);