anchor.diff:      end.
   
   % qos=2
  +% TODO: From should be equal to Pub, to test
   provisional({provresp, From, Msg=#mqtt_msg{type='PUBREL', payload=P}}, 
               State=#state{publisher=Pub, message=PubMsg, subscribers=Subscribers}) ->
       lager:debug("provisional state: received provisional response ~p", [Msg]),
  
positive.code:             % send PUBACK/PUBREL immediately
              MsgID   = proplists:get_value(msgid, P),
              send(ack, From, MsgID, Qos),
              mqtt_session:landed(From, MsgID), % message no more in in-flight mode
  
              {stop, normal, State};
  
          {_, _} ->
              % wait subscribers acknowledgement
  
negative.code:             % send PUBCOMP immediately
              MsgID   = proplists:get_value(msgid, P),
              send(ack, From, MsgID, 2),
  
              {stop, normal, State};
  
  