diff --git a/src/isup.hrl b/src/isup.hrl
index 7190deb..55750ea 100644
--- a/src/isup.hrl
+++ b/src/isup.hrl
@@ -91,6 +91,9 @@
 -define(ISUP_PAR_USER_USER_IND,		2#00101010).	% User-to-user indicators
 -define(ISUP_PAR_USER_USER_INFO,	2#00100000).	% User-to-user information
 
+-define(ISUP_ADDR_NAT_NATIONAL,		2#0000011).	% National (significant) number
+-define(ISUP_ADDR_NAT_INTERNATIONAL,	2#0000100).	% International number
+
 -record(party_number, {
 	nature_of_addr_ind,
 	internal_net_num,	% only in called party
diff --git a/src/mgw_nat.erl b/src/mgw_nat.erl
index eee64bb..856fc26 100644
--- a/src/mgw_nat.erl
+++ b/src/mgw_nat.erl
@@ -95,7 +95,9 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 -define(MSRN_PFX_MSC,	[8,9,0,9,9]).
+%-define(MSRN_PFX_MSC,	[0,0,3,5,4,8,9,0,9,9]).
 -define(MSRN_PFX_STP,	[9,2,9,9,4,2,0,0]).
+-define(INTERN_PFX,	[6,3]).
 
 % iterate over list of parameters and call mangle_rx_isup_par() for each one
 mangle_rx_isup_params(_From, _MsgType, _Msg, ParListOut, []) ->
@@ -125,7 +127,13 @@
 	case NumType of
 		?ISUP_PAR_CALLED_P_NUM ->
 			io:format("IAM MSRN rewrite (STP->MSC): "),
-			replace_isup_party_prefix(PartyNum, ?MSRN_PFX_STP, ?MSRN_PFX_MSC);
+			Num1 = isup_party_replace_prefix(PartyNum, ?MSRN_PFX_STP, ?MSRN_PFX_MSC),
+			% if there was no MSRN rewrite, internationalize it
+			if Num1 == PartyNum ->
+				isup_party_internationalize(Num1, ?INTERN_PFX);
+			   true ->
+				Num1
+			end;
 		_ ->
 			PartyNum
 	end;
@@ -135,7 +143,7 @@
 	case NumType of
 		?ISUP_PAR_CONNECTED_NUM ->
 			io:format("CON MSRN rewrite (MSC->STP): "),
-			replace_isup_party_prefix(PartyNum, ?MSRN_PFX_MSC, ?MSRN_PFX_STP);
+			isup_party_replace_prefix(PartyNum, ?MSRN_PFX_MSC, ?MSRN_PFX_STP);
 		_ ->
 			PartyNum
 	end;
@@ -144,16 +152,29 @@
 	PartyNum.
 
 % replace the prefix of PartyNum with NewPfx _if_ the current prefix matches MatchPfx
-replace_isup_party_prefix(PartyNum, MatchPfx, NewPfx) ->
+isup_party_replace_prefix(PartyNum, MatchPfx, NewPfx) ->
 	DigitsIn = PartyNum#party_number.phone_number,
 	MatchPfxLen = length(MatchPfx),
 	Pfx = lists:sublist(DigitsIn, 1, MatchPfxLen),
 	if Pfx == MatchPfx ->
 		Trailer = lists:sublist(DigitsIn, MatchPfxLen+1, length(DigitsIn)-MatchPfxLen),
 		DigitsOut = NewPfx ++ Trailer,
-		io:format("ISUP Party Number rewrite: ~p -> ~p~n", [DigitsIn, DigitsOut]);
+		io:format("Prefix rewrite: ~p -> ~p~n", [DigitsIn, DigitsOut]);
 	   true ->
-		io:format("ISUP Party Number rewrite: NO MATCH (~p != ~p)~n", [Pfx, MatchPfx]),
+		io:format("Prefix rewrite: NO MATCH (~p != ~p)~n", [Pfx, MatchPfx]),
 		DigitsOut = DigitsIn
 	end,
 	PartyNum#party_number{phone_number = DigitsOut}.
+
+isup_party_internationalize(PartyNum, CountryCode) ->
+	#party_number{phone_number = DigitsIn, nature_of_addr_ind = Nature} = PartyNum,
+	case Nature of
+		?ISUP_ADDR_NAT_NATIONAL ->
+			DigitsOut = CountryCode ++ DigitsIn,
+			NatureOut = ?ISUP_ADDR_NAT_INTERNATIONAL,
+			io:format("Internationalize: ~p -> ~p~n", [DigitsIn, DigitsOut]);
+		_ ->
+			DigitsOut = DigitsIn,
+			NatureOut = Nature
+	end,
+	PartyNum#party_number{phone_number = DigitsOut, nature_of_addr_ind = NatureOut}.
