diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn
index a6d3460..494e8bb 100644
--- a/mgw/MGCP_Test.ttcn
+++ b/mgw/MGCP_Test.ttcn
@@ -998,7 +998,8 @@
 		setverdict(pass);
 	}
 
-	function f_TC_two_crcx_and_rtp(boolean bidir) runs on dummy_CT {
+	function f_TC_two_crcx_and_rtp(boolean bidir, charstring codec_name_a, integer pt_a,
+					charstring codec_name_b, integer pt_b) runs on dummy_CT {
 		var RtpFlowData flow[2];
 		var RtpemStats stats[2];
 		var MgcpResponse resp;
@@ -1009,13 +1010,13 @@
 		f_init(ep);
 
 		/* from us to MGW */
-		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000"));
+		flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, pt_a, codec_name_a));
 		/* bind local RTP emulation sockets */
 		flow[0].em.portnr := 10000;
 		f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]);
 
 		/* from MGW back to us */
-		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000"));
+		flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, pt_b, codec_name_b));
 		flow[1].em.portnr := 20000;
 		f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]);
 
@@ -1053,13 +1054,23 @@
 
 	/* create two local RTP emulations; create two connections on MGW EP, exchange some data */
 	testcase TC_two_crcx_and_rtp() runs on dummy_CT {
-		 f_TC_two_crcx_and_rtp(false);
+		 f_TC_two_crcx_and_rtp(false, "AMR/8000", 98, "AMR/8000", 98);
 	}
 
 	/* create two local RTP emulations; create two connections on MGW EP,
 	 * exchange some data in both directions */
 	testcase TC_two_crcx_and_rtp_bidir() runs on dummy_CT {
-		 f_TC_two_crcx_and_rtp(true);
+		 f_TC_two_crcx_and_rtp(true, "AMR/8000", 98, "AMR/8000", 98);
+	}
+
+	/* same as TC_two_crcx_and_rtp, but with different PT number on both ends */
+	testcase TC_two_crcx_diff_pt_and_rtp() runs on dummy_CT {
+		 f_TC_two_crcx_and_rtp(false, "AMR/8000", 98, "AMR/8000", 112);
+	}
+
+	/* same as TC_two_crcx_and_rtp, but with different PT number on both ends */
+	testcase TC_two_crcx_diff_pt_and_rtp_bidir() runs on dummy_CT {
+		 f_TC_two_crcx_and_rtp(true, "AMR/8000", 98, "AMR/8000", 112);
 	}
 
 	/* create two local RTP emulations and pass data in both directions */
@@ -1328,6 +1339,8 @@
 		execute(TC_one_crcx_loopback_rtp());
 		execute(TC_two_crcx_and_rtp());
 		execute(TC_two_crcx_and_rtp_bidir());
+		execute(TC_two_crcx_diff_pt_and_rtp());
+		execute(TC_two_crcx_diff_pt_and_rtp_bidir());
 		execute(TC_two_crcx_mdcx_and_rtp());
 		execute(TC_two_crcx_and_unsolicited_rtp());
 		execute(TC_two_crcx_and_one_mdcx_rtp_ho());
