anchor.diff:          _ -> comm:send_local(SourcePid, Message)
       end.
   
  -%% @doc Aborts the given slide operation. Pred_or_Succ determines whether the
  -%%      SlideOp is a slide with the predecessor or successor of our node. We
  -%%      can thus notify the proper node of the abort.
  +%% @doc Aborts the given slide operation. Assume the SlideOp has already been
  +%%      set in the dht_node and resets the according slide in its state to
  +%%      null.
   %% @see abort_slide/8
   -spec abort_slide(State::dht_node_state:state(), SlideOp::slide_op:slide_op(),
           Reason::abort_reason(), NotifyNode::boolean()) -> dht_node_state:state().
  
positive.code:                     abort_slide(State, SlideOp, changed_parameters, true)
              end;
          not_found ->
              setup_slide_with2_not_found(
                State, Type, MoveFullId, MyNode, TargetNode, TargetId, Tag,
                MaxTransportBytes, SourcePid, First);
          {wrong_neighbor, _PredOrSucc, SlideOp} -> % wrong pred or succ
              abort_slide(State, SlideOp, wrong_pred_succ_node, true)
      end.
      
  %% @doc Sets up a new slide operation with the node's successor or predecessor
  %%      after a request for a slide has been received and setup_slide_with/9
  %%      checked that the slide to create did not exist yet.
  -spec setup_slide_with2_not_found(State::dht_node_state:state(),
          Type::slide_op:type(), MoveFullId::slide_op:id(),
          MyNode::node:node_type(), TargetNode::node:node_type(),
          TargetId::?RT:key(), Tag::any(), MaxTransportBytes::pos_integer(),
          SourcePid::comm:erl_local_pid() | null, First::boolean())
              -> dht_node_state:state().
  setup_slide_with2_not_found(State, Type, MoveFullId,
                              MyNode, TargetNode, TargetId, Tag,
                              MaxTransportBytes, SourcePid, First) ->
      PredOrSucc = slide_op:get_predORsucc(Type),
      CanSlide = case PredOrSucc of
                     pred -> can_slide_pred(State, TargetId, Type);
                     succ -> can_slide_succ(State, TargetId, Type)
                 end,
      % correct pred/succ info? did pred/succ know our current ID (compare node info)
      NodesCorrect = MyNode =:= dht_node_state:get(State, node) andalso
                         TargetNode =:= dht_node_state:get(State, PredOrSucc),
      MoveDone = (PredOrSucc =:= pred andalso node:id(TargetNode) =:= TargetId) orelse
                 (PredOrSucc =:= succ andalso node:id(MyNode) =:= TargetId),
      case CanSlide andalso NodesCorrect andalso not MoveDone of
          true ->
              case slide_op:is_leave(Type, 'send') of
  
negative.code: 
  %% @doc Sets up a new slide operation with the node's successor or predecessor
  %%      after a request for a slide has been received.
  -spec setup_slide(State::dht_node_state:state(), Type::slide_op:type(),
                    MoveFullId::slide_op:id(), MyNode::node:node_type(),
                    TargetNode::node:node_type(), TargetId::?RT:key(),
                    Tag::any(), MaxTransportBytes::pos_integer(),
                    SourcePid::comm:erl_local_pid() | null, First::boolean())
          -> dht_node_state:state().
  setup_slide(State, Type, MoveFullId, MyNode, TargetNode, TargetId, Tag,
              MaxTransportBytes, SourcePid, First) ->
      case get_slide_op(State, MoveFullId) of
          % If there already is a slide operation which was previously set up or
          % due to a second message after a timeout hit on the other node,
  