anchor.diff:  
   parse_specific_type(?PUBLISH,<<Dup:1,QoS:2,Retain:1>>,S) when QoS =< 2 ->
   
  -    %% validate flags - should we do that here? or in the connection process???
  +    %% validate flags - @todo: should we do that here? or in the connection process???
       case {Dup,QoS,Retain} of
           {1,0,_}->
               throw({error,invalid_flags});
  
positive.code:     throw({error,malformed_packet}).
  
  %% If the Will Flag is set to 0, then the Will QoS MUST be set to 0 (0x00) [MQTT-3.1.2-13]
  parse_will_details_maybe(_WillFlag = 0,_WillRetain,_WillQoS = 0,Buffer) ->
      {ok,undefined,Buffer};
  
  parse_will_details_maybe(_WillFlag = 1,WillRetain,WillQoS,Buffer) when WillQoS =< 2 ->
      {ok,WillTopic, Rest1} =  parse_string(Buffer),
      {ok,WillMessage, Rest2} =  parse_string(Rest1),
      {
  
negative.code:     end.
  
  read(S = #parse_state{max_buffer_size = MaxBufferSize, buffer = Buffer, readfun = ReadFun}) ->
      S#parse_state{buffer =  read(ReadFun, MaxBufferSize, Buffer)}.
  
  %% ========================================================
  %%      PRIMITIVES:
  