anchor.diff:  
   % mangle the ISUP content
   mangle_rx_mtp3_serv(L, From, ?MTP3_SERV_ISUP, Mtp3 = #mtp3_msg{payload = Payload}) ->
  +	io:format("ISUP In: ~p~n", [Payload]),
   	Isup = isup_codec:parse_isup_msg(Payload),
   	io:format("ISUP Decode: ~p~n", [Isup]),
   	% FIXME
  -	Mtp3;
  +	case Isup#isup_msg.msg_type of
  +		?ISUP_MSGT_IAM ->
  +			io:format("ISUP Encode In: ~p~n", [Isup]),
  +			Isup_out = isup_codec:encode_isup_msg(Isup),
  +			io:format("ISUP Encode Out: ~p~n", [Isup_out]),
  +			% FIXME
  +			Mtp3;
  +		_ ->
  +			Mtp3
  +	end;
   % mangle the SCCP content
   mangle_rx_mtp3_serv(L, From, ?MTP3_SERV_SCCP, Mtp3 = #mtp3_msg{payload = Payload}) ->
   	Sccp = sccp_codec:parse_sccp_msg(Payload),
  
positive.code: 			M2ua_out = M2ua
  	end,
  	% re-encode the data
  	io:format("M2UA Encode: ~p~n", [M2ua_out]),
  	m2ua_codec:encode_m2ua_msg(M2ua_out).
  
  % mangle the received M2UA
  mangle_rx_m2ua_maup(L, From, M2ua = #m2ua_msg{parameters = Params}) ->
  	{_Len, M2uaPayload} = proplists:get_value(16#300, Params),
  	Mtp3 = mtp3_codec:parse_mtp3_msg(M2uaPayload),
  	io:format("MTP3 Decode: ~p~n", [Mtp3]),
  	Mtp3_out = mangle_rx_mtp3(L, From, Mtp3),
  	io:format("MTP3 Encode: ~p~n", [Mtp3_out]),
  	Mtp3OutBin = mtp3_codec:encode_mtp3_msg(Mtp3_out),
  	Params2 = proplists:delete(16#300, Params),
  	ParamsNew = Params2 ++ [{16#300, {byte_size(Mtp3OutBin), Mtp3OutBin}}],
  
negative.code: 			handle_rx_data(L, from_stp, Anc, Data),
  			inet:setopts(StpSock, [{active, once}]),
  			NewL = L;
  		{sctp, _Sock, RemoteIp, _Remote_port, {_Anc, Data}}
  					when is_record(Data, sctp_shutdown_event) ->
  			% maybe we should simply die?
  			NewL = L,
  			io:format("SCTP remote ~p shutdown~n", [RemoteIp]),
  			foo:bar();
  		Other ->
  			io:format("OTHER ~p~n", [Other]),
  			NewL = L
  