anchor.diff:          false ->
               debug("sync_join_cluster: joining node ~p to node ~p", [Node, JoinedNode]),
   
  +            %% Get my information.
  +            Myself = rpc:call(?NAME(Node), partisan_peer_service_manager, myself, []),
  +
               %% Issue join.
  -            ok = rpc:call(?NAME(JoinedNode), ?MANAGER, join, [Node]),
  +            ok = rpc:call(?NAME(JoinedNode), ?MANAGER, join, [Myself]),
   
               %% Wait until all nodes agree about membership.
               ok = wait_until_nodes_agree_on_membership(JoinedNodes ++ [Node]),
  
positive.code: 
      Result.
  
  sync_leave_cluster(Node, JoinedNodes) ->
      command_preamble(Node, [sync_leave_cluster, JoinedNodes]),
  
      Result = case enough_nodes_connected_to_issue_remove(JoinedNodes) of
  
negative.code:         true ->
              debug("sync_leave_cluster: leaving node ~p from cluster with members ~p", [Node, JoinedNodes]),
  
              %% Get my information.
              Myself = rpc:call(?NAME(Node), partisan_peer_service_manager, myself, []),
  
              %% Issue remove.
              ok = rpc:call(?NAME(JoinedNode), ?MANAGER, leave, [Myself]),
  
              %% Wait until all nodes agree about membership.
              ok = wait_until_nodes_agree_on_membership(JoinedNodes -- [Node]),
  