As reported to ISC Support: In the following code of dhcp3/common/dns.c:ddns_modify_fwd() /* send the message, cleanup and return the result */ result = ddns_update(dhcp_gbl_ctx.dnsclient, dns_rdataclass_in, zname, &prereqlist, &updatelist, zlist, tsec_key, DNS_CLIENTRESOPT_ALLOWRUN, dhcp_gbl_ctx.task, ddns_interlude, (void *)ddns_cb, &ddns_cb->transaction); I suspect 'DNS_CLIENTRESOPT_ALLOWRUN' should actually be 0. ddns_update() is essentially a wrapper for dns_client_startupdate(), and according to its documentation contained in the tar ball of BIND-9.11.2-P1, the options should be named 'DNS_CLIENTUPDOPT_xxx'. Besides, ALLOWRUN flags seem to only matter for the 'synchronous' mode (e.g. dns_client_update()) so it shouldn't make much sense anyway. Previously, such as in DHCP-4.3.3, it didn't have any real effect since it used older versions of BIND 9 libdns that doesn't recognized any options in dns_client_startupdate(). But it now uses BIND 9.11.2, which has a couple of options for dns_client_startupdate(), and the value of DNS_CLIENTRESOPT_ALLOWRUN is actually the same as DNS_CLIENTUPDOPT_TCP. So it would now change the behavior. Note: this is just an observation from code inspection I happen to notice when I tried to run an older ISC-DHCP with newer BIND 9 library. But it looks like the self-contained DHCP-4.3.3 has the same issue.