--- samba-3.3.4/source/client/client.c 2009-04-28 02:46:16.000000000 -0400 +++ samba-3.3.4/source/client/client.c.hostquery 2009-05-13 14:22:13.000000000 -0400 @@ -4541,8 +4541,6 @@ static int do_host_query(const char *query_host) { - struct sockaddr_storage ss; - cli = cli_cm_open(talloc_tos(), NULL, query_host, "IPC$", true, smb_encrypt); if (!cli) @@ -4550,11 +4548,17 @@ browse_host(true); - if (interpret_string_addr(&ss, query_host, 0) && (ss.ss_family != AF_INET)) { + /* Ensure that the host can do IPv4 */ + + if (!interpret_addr(query_host)) { + struct sockaddr_storage ss; + if (interpret_string_addr(&ss, query_host, 0) && + (ss.ss_family != AF_INET)) { d_printf("%s is an IPv6 address -- no workgroup available\n", query_host); return 1; } + } if (port != 139) {