anchor.diff:          {ok, {_, TRef}} ->
               cancel_timer(TRef),
               Session1 = acked(PktId, Session),
  -            {noreply, dequeue(Session1)};
  +            noreply(dequeue(Session1));
           error ->
               lager:error("Session ~s cannot find PUBACK '~p'!", [ClientId, PktId]),
  -            {noreply, Session}
  +            noreply(Session)
       end;
   
   %% PUBREC
  
positive.code: cancel_timer(Ref) -> 
  	catch erlang:cancel_timer(Ref).
  
  
negative.code:     lager:info("Session ~s unlink with client ~p: reason=~p",
                      [ClientId, ClientPid, Reason]),
      TRef = timer(Expires, session_expired),
      noreply(Session#session{client_pid = undefined, expired_timer = TRef});
  
  handle_info({'EXIT', Pid, _Reason}, Session = #session{client_id = ClientId,
                                                         client_pid = ClientPid}) ->
                                                              
      lager:error("Session ~s received unexpected EXIT:"
                      " client_pid=~p, exit_pid=~p", [ClientId, ClientPid, Pid]),
  