anchor.diff:  parse_isup_msgt(?ISUP_MSGT_CON, Bin) ->
   	<<BackCallInd:16, Remain/binary>> = Bin,
   	BciOpt = {backward_call_ind, BackCallInd},
  -	Opts = parse_isup_opts(Remain),
  +	Opts = parse_isup_opts_ptr(Remain),
   	[BciOpt|Opts];
   % Table C-12	Continuity
   parse_isup_msgt(?ISUP_MSGT_COT, Bin) ->
  
positive.code: parse_isup_msgt(Msgt, Bin) when Msgt == ?ISUP_MSGT_RES; Msgt == ?ISUP_MSGT_SUS ->
  	<<SuspResInd:8, Remain/binary>> = Bin,
  	FixedOpts = [{susp_res_ind, SuspResInd}],
  	Opts = parse_isup_opts(Remain),
  	[FixedOpts|Opts];
  % Table C-23
  parse_isup_msgt(M, <<>>) when
  
negative.code: 	% C.3.32 Subsequent Number
  	{PhoneBin, OddEven} = encode_isup_party(PhoneNum),
  	<<OddEven:1, 0:7, PhoneBin/binary>>;
  encode_isup_par(Atom, _More) when is_atom(Atom) ->
  	<<>>;
  encode_isup_par(OptNum, {OptLen, Binary}) when is_binary(Binary), is_integer(OptNum), is_integer(OptLen) ->
  	Binary.
  
  % encode a single OPTIONAL parameter (TLV type), skip all others
  encode_isup_optpar(ParNum, _ParBody) when is_atom(ParNum) ->
  	<<>>;
  encode_isup_optpar(ParNum, ParBody) ->
  	ParBin = encode_isup_par(ParNum, ParBody),
  	ParLen = byte_size(ParBin),
  	<<ParNum:8, ParLen:8, ParBin/binary>>.
  
  % recursive function to encode all optional parameters
  encode_isup_opts([], OutBin) ->
  	OutBin;
  encode_isup_opts([Opt|OptPropList], OutBin) ->
  