--- zonedata.c 2012-01-10 12:25:28.000000000 +0100 +++ zonedata.c.patched 2013-02-01 09:41:06.286898950 +0100 @@ -1227,13 +1227,14 @@ soa = (uint32_t) time_datestamp(0, "%Y%m%d", NULL) * 100; if (!zd->initialized) { if (!DNS_SERIAL_GT(soa, zd->inbound_serial)) { - ods_log_warning("[%s] unable to use datecounter %u as serial: " - "not greater than inbound serial %u", zd_str, soa, - zd->inbound_serial); soa = zd->inbound_serial + 1; } - } else if (!DNS_SERIAL_GT(soa, prev)) { - soa = prev + 1; + } else { + if (DNS_SERIAL_GT(zd->inbound_serial, soa)) { + soa = zd->inbound_serial + 1; + } else if (!DNS_SERIAL_GT(soa, prev)) { + soa = prev + 1; + } } } else if (strncmp(sc->soa_serial, "keep", 4) == 0) { soa = zd->inbound_serial;