179030
diff --git a/dns/query.py b/dns/query.py
179030
index bfecd43..19b9fbb 100644
179030
--- a/dns/query.py
179030
+++ b/dns/query.py
179030
@@ -467,7 +467,8 @@ def xfr(where, zone, rdtype=dns.rdatatype.AXFR, rdclass=dns.rdataclass.IN,
179030
     first = True
179030
     while not done:
179030
         mexpiration = _compute_expiration(timeout)
179030
-        if mexpiration is None or mexpiration > expiration:
179030
+        if mexpiration is None or \
179030
+           (expiration is not None and mexpiration > expiration):
179030
             mexpiration = expiration
179030
         if use_udp:
179030
             _wait_for_readable(s, expiration)