diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py
index 102f26364ca9ba0c5579179ec09a54d2f8967231..ec50df32b32585344dd50158754408e45ab53553 100644
--- a/tests-extra/tools/dnstest/server.py
+++ b/tests-extra/tools/dnstest/server.py
@@ -896,6 +896,14 @@ class Bind(Server):
         zone_name = (" " + zone.name) if zone else ""
         self.ctl("sync%s" % zone_name, wait=wait)
 
+    def check_option(self, option):
+        proc = Popen([self.daemon_bin + "-checkconf", "/dev/fd/0"],
+                     stdout=PIPE, stderr=PIPE, stdin=PIPE,
+                     universal_newlines=True)
+        conff = "options {\n    %s;\n};" % option
+        (out, err) = proc.communicate(input=conff)
+        return proc.wait() == 0
+
     def _str(self, conf, name, value):
         if value and value != True:
             conf.item_str(name, value)
@@ -927,6 +935,8 @@ class Bind(Server):
         s.item("notify-delay", "0")
         s.item("notify-rate", "1000")
         s.item("max-journal-size", "unlimited")
+        if self.check_option("max-ixfr-ratio unlimited"):
+            s.item("max-ixfr-ratio", "unlimited")
         s.item("startup-notify-rate", "1000")
         s.item("serial-query-rate", "1000")
         s.end()