anchor.diff:              #state{ rpcs = RPC } = S,
               Ack = #pubrec{ message_id = Id },
               write(S, Ack),
  -            RPC1 = gb_trees:insert({server, Id}, Ack, RPC),
  +            RPC1 = gb_trees:insert(?REMOTE(Id), Ack, RPC),
               S#state{ rpcs = RPC1 }
       end.
   
  
positive.code:                        || {T, Q} <- Subs] },
      rpc(Conn, Subscribe, self()).
  
  -spec(unsubscribe(connection(), [topic()]) -> {ok, reference()}).
  unsubscribe(Conn, Topics) ->
      Unsub = #unsubscribe{ topics = Topics },
  
negative.code: %% Record the fact of an RPC and send the frame with the correct id.
  do_rpc(S0, Req, Ref, From) ->
      #state{ id_counter = Id,
              rpcs = RPC } = S0,
      RPC1 = gb_trees:insert(?LOCAL(Id), {Ref, From}, RPC),
      write(S0, with_id(Id, Req)),
      S0#state{ id_counter = Id + 1, rpcs = RPC1 }.
  
  