anchor.diff:                                                     local_fsm) of
                   ok ->
                       remote_exchange_request(Service, RemoteVN, IndexN),
  -                    next_state_with_timeout(prepare_exchange, State);
  +                    Timer = gen_fsm:send_event_after(State#state.timeout,
  +                                                     timeout),
  +                    {next_state, prepare_exchange, State#state{timer=Timer}};
                   _ ->
                       send_exchange_status(already_locked, State),
                       {stop, normal, State}
  
positive.code:                    Acc
             end,
      fold_disk_log(disk_log:chunk(DiskLog, Cont), Fun, Acc2, DiskLog).
  
negative.code:     lager:info("Timeout during exchange between (local) ~p and (remote) ~p, "
                 "(preflist) ~p", [LocalVN, RemoteVN, IndexN]),
      send_exchange_status({timeout, RemoteVN, IndexN}, State),
      {stop, normal, State#state{timer=undefined}}.
  
  %% @private
  send_exchange_status(Status, #state{local=LocalVN,
  