anchor.diff:  
   parse_variable_length(S = #parse_state{buffer = <<HasMore:1,Length:7, Rest/binary>>},
                         Sum,
  -                      Multiplier)->
  +                      Multiplier) ->
   
       NewSum = Sum + Length * Multiplier,
       if HasMore =:= 1 ->
  
positive.code: parse_string(_PartialString) ->
      {error,incomplete}.
  
  maybe_parse_string(Flag, Buffer) ->
      case Flag of
          0 ->
              {undefined,Buffer};
          1 ->
              {ok, Str, Rest} =  parse_string(Buffer),
              {Str,Rest}
      end.
  
  %%
  %% Parses integer using variable length-encoding
  
negative.code: parse_specific_type(?PUBLISH,<<Dup:1,QoS:2,Retain:1>>,S) when QoS =< 2 ->
  
      %% validate flags - @todo: should we do that here? or in the connection process???
      case {Dup,QoS} of
          {1,0} -> throw({error,invalid_flags});
          _     -> ok
      end,
  
      %#parse_state{buffer = Rest } = S,
  