anchor.diff:      {noreply, State#state{waiting=undefined}}.
   
   handle_info({'DOWN', _MRef, process, Pid, Reason}, State) ->
  -    #state{repl_pid=ReplPid, subscriber_id=SubscriberId} = State,
  +    #state{repl_pid=ReplPid, subscriber_id=SubscriberId, node=Node} = State,
       case {Pid == ReplPid, Reason} of
           {true, normal} ->
               %% finished replicating
               {stop, normal, State};
  +        {true, {deliver_from_store, retry}} ->
  +            case lists:member(Node, vmq_cluster:nodes()) of
  +                true ->
  +                    erlang:send_after(?RETRY, self(), deliver_from_store),
  +                    {noreply, State};
  +                false ->
  +                    {stop, normal, State}
  +            end;
           {true, OtherReason} ->
               lager:warning("replication process for subscriber ~p died due to ~p",
                            [SubscriberId, OtherReason]),
  
positive.code: 
  init([Node, QPid, SubscriberId]) ->
      QueueMon = monitor(process, QPid),
      {ok, #state{node=Node, subscriber_id=SubscriberId, queue_pid=QPid,
                  queue_mon=QueueMon}, 0}.
  
  handle_call({deliver, Term}, From, State) ->
      {noreply, deliver(From, Term, State)}.
  
negative.code:             {stop, Reason, State}
      end;
  
  handle_info(deliver_from_store, #state{node=Node,
                                         subscriber_id=SubscriberId} = State) ->
      Self = self(),
      {ReplPid, ReplMon} =
      case node() of
  