anchor.diff:  
   joining({exit, _Pid}, #joining_state{remote=RemoteNode, cookie=NewCookie}) ->
       error_logger:info_msg("ns_cluster: joining cluster. Child has exited.~n"),
  +    ns_mnesia:delete_schema(),
       timer:sleep(1000), % Sleep for a second to let things settle
       true = erlang:set_cookie(node(), NewCookie),
       %% Let's verify connectivity.
       Connected = net_kernel:connect_node(RemoteNode),
  -    error_logger:info_msg("Connection from ~p to ~p:  ~p~n",
  -                          [node(), RemoteNode, Connected]),
  +    ?log_info("Connection from ~p to ~p:  ~p",
  +              [node(), RemoteNode, Connected]),
       %% Add ourselves to nodes_wanted on the remote node after shutting
       %% down our own config server.
  -    MyNode = node(),
  -    Fun = fun(X) ->
  -                  lists:usort([MyNode | X])
  -          end,
  -    case rpc:call(RemoteNode, ns_config, update_key, [nodes_wanted, Fun]) of
  +    case rpc:call(RemoteNode, ns_cluster, add_node, [node()]) of
           {badrpc, Crap} -> exit({badrpc, Crap});
           _ -> error_logger:info_msg("Remote config updated to add ~p to ~p~n",
                                      [node(), RemoteNode])
  
positive.code: 
  terminate(_Reason, _StateName, _StateData) -> ok.
  
  %% API
  join(RemoteNode, NewCookie) ->
      ns_log:log(?MODULE, ?NODE_JOIN_REQUEST, "Node join request on ~s to ~s",
                 [node(), RemoteNode]),
  
negative.code:                                  fun (X) ->
                                           X -- [RemoteNode]
                                   end),
              ns_config_rep:push(),
              ns_mnesia:delete_node(RemoteNode);
          true ->
              leave()
      end.
  