--- samba-3.3.7.original/source/smbd/dnsregister.c 2009-09-15 09:06:51.000000000 -0600 +++ samba-3.3.7.original/source/smbd/dnsregister.c 2009-09-15 09:08:08.000000000 -0600 @@ -166,11 +166,11 @@ bool dns_register_smbd_reply(struct dns_reg_state *dns_state, fd_set *lfds, struct timeval *timeout) { int mdnsd_conn_fd = -1; - if (dns_state->srv_ref == NULL) { + if ((dns_state == NULL) || (dns_state->srv_ref == NULL)) { return false; } mdnsd_conn_fd = DNSServiceRefSockFD(dns_state->srv_ref); --- samba-3.3.7.original/source/smbd/server.c 2009-09-15 09:06:51.000000000 -0600 +++ samba-3.3.7.original/source/smbd/server.c 2009-09-15 09:10:07.000000000 -0600 @@ -650,10 +650,16 @@ memcpy((char *)&r_fds, (char *)&listen_set, sizeof(listen_set)); FD_ZERO(&w_fds); GetTimeOfDay(&now); + /* Kick off our mDNS registration. */ + if (dns_port != 0) { + dns_register_smbd(&dns_reg, dns_port, &maxfd, + &r_fds, &idle_timeout); + } + event_add_to_select_args(smbd_event_context(), &now, &r_fds, &w_fds, &idle_timeout, &maxfd); num = sys_select(maxfd+1,&r_fds,&w_fds,NULL,