anchor.diff:                      TablePid = Entry#syn_registry_table.pid,
                       TableMeta = Entry#syn_registry_table.meta,
   
  -                    resolve_conflict(Name, {TablePid, TableMeta}, {RemotePid, RemoteMeta},
  -                        %% keep currently in table
  -                        fun() ->
  +                    case resolve_conflict(Name, {TablePid, TableMeta}, {RemotePid, RemoteMeta}, State) of
  +                        PidToKeep when PidToKeep =:= TablePid ->
                               %% overwrite
  -                            ok = rpc:call(RemoteNode, syn_registry, add_to_local_table, [Name, TablePid, TableMeta, undefined])
  -                        end,
  -                        %% keep remote
  -                        fun() ->
  +                            ok = rpc:call(RemoteNode, syn_registry, add_to_local_table, [Name, TablePid, TableMeta, undefined]);
  +
  +                        PidToKeep when PidToKeep =:= RemotePid ->
                               %% overwrite
  -                            add_to_local_table(Name, RemotePid, RemoteMeta, undefined)
  -                        end,
  -                        State
  -                    )
  +                            add_to_local_table(Name, RemotePid, RemoteMeta, undefined);
  +
  +                        _ ->
  +                            ok
  +                    end
                   end
               )
       end,
  
positive.code:                 "Syn(~p): Keeping remote process ~p, killing local ~p",
                  [node(), RemotePid, TablePid]
              ),
              KeepRemoteFun(),
              case KillOther of
                  true -> exit(TablePid, {syn_resolve_kill, Name, TableMeta});
                  _ -> ok
              end;
  
          none ->
              remove_from_local_table(Name),
              RemoteNode = node(RemotePid),
              ok = rpc:call(RemoteNode, syn_registry, remove_from_local_table, [Name]);
  
          Other ->
              error_logger:error_msg(
                  "Syn(~p): Custom handler returned ~p, valid options were ~p and ~p",
                  [node(), Other, TablePid, RemotePid]
              )
      end.
  
  -spec raw_purge_registry_entries_for_remote_node(Node :: atom()) -> ok.
  
negative.code:     Name :: any(),
      {LocalPid :: pid(), LocalMeta :: any()},
      {RemotePid :: pid(), RemoteMeta :: any()},
      #state{}
  ) -> pid() | undefined.
  resolve_conflict(
      Name,
      {TablePid, TableMeta},
      {RemotePid, RemoteMeta},
      #state{custom_event_handler = CustomEventHandler}
  ) ->
      TablePidAlive = rpc:call(node(TablePid), erlang, is_process_alive, [TablePid]),
  