diff --git a/src/ldap_helper.c b/src/ldap_helper.c
index a81a9d2..3b4ae5c 100644
--- a/src/ldap_helper.c
+++ b/src/ldap_helper.c
@@ -1792,10 +1792,17 @@ zone_master_reconfigure_nsec3param(settings_set_t *zone_settings,
 			  dns_rdatatype_nsec3param, origin, nsec3p_str,
 			  &nsec3p_rdata));
 	CHECK(dns_rdata_tostruct(nsec3p_rdata, &nsec3p_rr, NULL));
+#if LIBDNS_VERSION_MAJOR > 1609
+	CHECK(dns_zone_setnsec3param(secure, nsec3p_rr.hash, nsec3p_rr.flags,
+				     nsec3p_rr.iterations,
+				     nsec3p_rr.salt_length, nsec3p_rr.salt,
+				     true, false));
+#else
 	CHECK(dns_zone_setnsec3param(secure, nsec3p_rr.hash, nsec3p_rr.flags,
 				     nsec3p_rr.iterations,
 				     nsec3p_rr.salt_length, nsec3p_rr.salt,
 				     true));
+#endif
 
 cleanup:
 	if (nsec3p_rdata != NULL) {
diff --git a/src/zone.c b/src/zone.c
index d0b71b1..7ce1769 100644
--- a/src/zone.c
+++ b/src/zone.c
@@ -17,6 +17,7 @@
 #include <dns/zone.h>
 
 #include "util.h"
+#include "config.h"
 
 /**
  * Write given diff to zone journal. Journal will be created
@@ -61,7 +62,11 @@ zone_soaserial_updatetuple(dns_updatemethod_t method, dns_difftuple_t *soa_tuple
 	REQUIRE(soa_tuple->rdata.type == dns_rdatatype_soa);
 
 	serial = dns_soa_getserial(&soa_tuple->rdata);
+#if LIBDNS_VERSION_MAJOR >= 1611
+	serial = dns_update_soaserial(serial, method, NULL);
+#else
 	serial = dns_update_soaserial(serial, method);
+#endif
 	dns_soa_setserial(serial, &soa_tuple->rdata);
 	if (new_serial != NULL)
 		*new_serial = serial;
