anchor.diff:                          {init_nodes, ns_node_disco:nodes_actual_proper()}),
       Ref.
   
  +
   unsubscribe(Name, Ref) ->
       gen_event:delete_handler(Name, {?MODULE, Ref}, unsubscribed).
  +
   
   %% We don't need the name for this because it's in the state of the
   %% handler installed on ns_node_disco_events
  
positive.code: terminate(Reason, State) ->
      error_logger:info_msg("~p unsubscribed ~p: ~p~n", [?MODULE, State, Reason]).
  
  %% Internal functions
  subscribe_node(Node, #subscribe_all_state{name=Name, func=Fun,
                                            func_state=FState}) ->
      subscribe({Name, Node}, Fun, FState).
  
negative.code: -export([code_change/3, init/1, handle_call/2, handle_event/2, handle_info/2,
           terminate/2]).
  
  -export([subscribe/1, subscribe/3,
           subscribe_all/1, subscribe_all/3,
           unsubscribe/2, unsubscribe_all/1]).
  
  
  %%
  %% API
  %%
  subscribe(Name) ->
      subscribe(Name, msg_fun(self()), ignored).
  
  
  subscribe(Name, Fun, State) ->
      Ref = make_ref(),
      ok = gen_event:add_sup_handler(Name, {?MODULE, Ref},
                                     #state{func=Fun, func_state=State}),
      Ref.
  
  
  %% Subscribe to the same event on all nodes
  subscribe_all(Name) ->
      subscribe_all(Name, msg_fun(self()), ignored).
  
  
  subscribe_all(Name, Fun, State) ->
      Ref = make_ref(),
      ok = gen_event:add_sup_handler(ns_node_disco_events, {?MODULE, Ref},
  