anchor.diff:  
   unsubscribe(OldSubs,S = #outgoing{subs = Subs,queue = Q}) ->
       Subs1 = lists:foldl(fun orddict:erase/2,Subs,OldSubs),
  -    S#outgoing{subs = Subs1, queue = flush_queue(OldSubs,Q)}.
  +    S#outgoing{subs = Subs1,queue = flush_queue(OldSubs,Q)}.
   
   flush_queue(OldSubs,Q) ->
       queue:filter(fun({Filter,_}) -> lists:member(Filter,OldSubs) end,Q).
  
positive.code:     Subs1 = lists:foldl(fun maybe_add_sub/2,Subs,NewSubs),
      S#outgoing{subs = Subs1}.
  
  maybe_add_sub({Filter,QoS},Subs) ->
      NewSub =
          case orddict:find(Filter,Subs) of
              {ok,{_,Seq}} -> {QoS,Seq};
              error        -> {QoS,undefined}
          end,
      orddict:store(Filter,NewSub,Subs).
  
  %% @doc
  %% Removes existing subscriptions from the session data
  
negative.code: %% =========================================================================
  %% MESSAGES
  %% =========================================================================
  
  -spec push(binary(),#packet{},#outgoing{}) -> {#'PUBLISH'{},#outgoing{}}.
  
  push(Filter,Packet = #packet{seq = Seq},SO = #outgoing{subs = Subs}) ->
      case should_accept(Filter,Subs) of
  