zone->expire instead of zone->expiretime. This left zone->expiretime with a value of zero, causing zone_settimer() to get horribly confused and set the timer to the inactive state (!). This in turn caused notify-driven refreshes (and probably other timer-scheduled events, too) to never happen.