anchor.diff:                            end || {_, List} <- IFAddrs],
       NewOrrdict = lists:foldl(
                      fun({ZoneName, _ZoneVersion}, Orrdict) ->
  -                           {ok, Zone} = erldns_zone_cache:get_zone_with_records(ZoneName),
  -                           case Zone#zone.allow_transfer of
  +                           {ok, #zone{allow_transfer = AllowTransfer, notify_source = NotifySource,
  +                                      authority = [#dns_rr{data = ZoneAuth}]}}
  +                               = erldns_zone_cache:get_zone_with_records(ZoneName),
  +                           case AllowTransfer of
                                  [] ->
                                      Orrdict;
                                  _ ->
                                      MountedIP = hd(lists:sort([IP || IP <- MountedIPAddresses,
  -                                                                    lists:member(IP, Zone#zone.allow_transfer)])),
  -                                   case Zone#zone.notify_source =:= MountedIP of
  +                                                                    lists:member(IP, AllowTransfer)])),
  +                                   case NotifySource =:= MountedIP of
                                          true ->
                                              %% We are the zone Authority, we don't need to keep
                                              %% track of this zone.
  
positive.code: 
  -define(SERVER, ?MODULE).
  -define(REFRESH_INTERVAL, 5000).
  
  -record(state, {zone_expirations, orddict_size}).
  
  %%%===================================================================
  
negative.code:     {reply, ok, State}.
  
  handle_cast({send_notify, {_BindIP, _DestinationIP, _ZoneName, _ZoneClass} = Args}, State) ->
      Spec = ?TRANSFER_WORKER(send_notify, Args),
      supervisor:start_child(erldns_zone_transfer_sup, Spec),
      {noreply, State, ?REFRESH_INTERVAL};
  handle_cast({handle_notify, {_Message, _ClientIP, _ServerIP} = Args}, State) ->
      Spec = ?TRANSFER_WORKER(handle_notify, Args),
      supervisor:start_child(erldns_zone_transfer_sup, Spec),
      {noreply, State, ?REFRESH_INTERVAL};
  handle_cast({send_axfr, {_ZoneName, _ServerIP} = Args}, State) ->
      Spec = ?TRANSFER_WORKER(send_axfr, Args),
      supervisor:start_child(erldns_zone_transfer_sup, Spec),
      {noreply, State, ?REFRESH_INTERVAL};
  handle_cast(_Request, State) ->
  