anchor.diff:                NewSeq  = element(RNum, NewMsg),
                 setelement(RNum, AccRecord, PrevSeq ++ NewSeq);
            (#field{rnum=RNum, type={msg,_FieldMsgName}}, AccRecord) ->
  -              PrevSubMsg = element(RNum, AccRecord),
  -              NewSubMsg  = element(RNum, NewMsg),
  -              MergedSubMsg = merge_msgs(PrevSubMsg, NewSubMsg, MsgDefs),
  -              setelement(RNum, AccRecord, MergedSubMsg);
  +              case {element(RNum, AccRecord), element(RNum, NewMsg)} of
  +                  {undefined, undefined} ->
  +                      AccRecord;
  +                  {undefined, NewSubMsg} ->
  +                      setelement(RNum, AccRecord, NewSubMsg);
  +                  {_PrevSubMsg, undefined} ->
  +                      AccRecord;
  +                  {PrevSubMsg, NewSubMsg} ->
  +                      MergedSubMsg = merge_msgs(PrevSubMsg, NewSubMsg, MsgDefs),
  +                      setelement(RNum, AccRecord, MergedSubMsg)
  +              end;
            (#field{rnum=RNum}, AccRecord) ->
                 case element(RNum, NewMsg) of
                     undefined -> AccRecord;
  
positive.code: 
  
  
  
  decode_varint(Bin) -> de_vi(Bin, 0, 0).
  
  de_vi(<<1:1, X:7, Rest/binary>>, N, Acc) -> de_vi(Rest, N+1, X bsl (N*7) + Acc);
  
negative.code:                    [{{msg,m1}, [#field{name=a, fnum=4, rnum=#m1.a, type=int32,
                                         occurrence=repeated, opts=[packed]}]}]).
  
  decoding_two_packed_chunks_of_varints_test() ->
      %%    "Note that although there's usually no reason to encode more
      %%     than one key-value pair for a packed repeated field, encoders
      %%     must be prepared to accept multiple key-value pairs. In this
  