diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 053a5f6..b24cb8d 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -857,7 +857,7 @@
 	},
 	mgw_conn_2 := {
 		resp := 1,
-		mgw_rtp_ip := "1.1.1.1",
+		mgw_rtp_ip := "2.2.2.2",
 		mgw_rtp_port := 11000,
 		mgcp_connection_id := '22222'H
 	},
@@ -988,9 +988,9 @@
 		/* MDCX setting up the RAN side remote RTP address received from Assignment Complete */
 		[] MGCP.receive(tr_MDCX) -> value mgcp_cmd {
 			log("f_mt_call_complete 8");
-			var SDP_Message sdp := valueof(ts_SDP(cpars.mgw_conn_2.mgw_rtp_ip, cpars.mgw_conn_2.mgw_rtp_ip,
+			var SDP_Message sdp := valueof(ts_SDP(cpars.mgw_conn_1.mgw_rtp_ip, cpars.mgw_conn_1.mgw_rtp_ip,
 								hex2str(cpars.mgcp_call_id), "42",
-								cpars.mgw_conn_2.mgw_rtp_port,
+								cpars.mgw_conn_1.mgw_rtp_port,
 								{ int2str(cpars.rtp_payload_type) },
 								{ valueof(ts_SDP_rtpmap(cpars.rtp_payload_type,
 											cpars.rtp_sdp_format)),
@@ -1003,7 +1003,7 @@
 				}
 				mgcp_resp := ts_MDCX_ACK_osmux(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id, osmux_cid, sdp);
 			} else {
-				mgcp_resp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_2.mgcp_connection_id, sdp);
+				mgcp_resp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id, sdp);
 			}
 			MGCP.send(mgcp_resp);
 			}
@@ -1073,9 +1073,9 @@
 		/* MDCX setting up the RAN side remote RTP address received from Assignment Complete */
 		[] MGCP.receive(tr_MDCX) -> value mgcp_cmd {
 			log("f_mt_call_complete 8.iu");
-			var SDP_Message sdp := valueof(ts_SDP(cpars.mgw_conn_2.mgw_rtp_ip, cpars.mgw_conn_2.mgw_rtp_ip,
+			var SDP_Message sdp := valueof(ts_SDP(cpars.mgw_conn_1.mgw_rtp_ip, cpars.mgw_conn_1.mgw_rtp_ip,
 								hex2str(cpars.mgcp_call_id), "42",
-								cpars.mgw_conn_2.mgw_rtp_port,
+								cpars.mgw_conn_1.mgw_rtp_port,
 								{ int2str(cpars.rtp_payload_type) },
 								{ valueof(ts_SDP_rtpmap(cpars.rtp_payload_type,
 											cpars.rtp_sdp_format)),
@@ -1088,7 +1088,7 @@
 				}
 				mgcp_resp := ts_MDCX_ACK_osmux(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id, osmux_cid, sdp);
 			} else {
-				mgcp_resp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_2.mgcp_connection_id, sdp);
+				mgcp_resp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id, sdp);
 			}
 			MGCP.send(mgcp_resp);
 			}
@@ -1423,9 +1423,9 @@
 	/* MDCX setting up the RAN side remote RTP address received from Assignment Complete */
 	[] MGCP.receive(tr_MDCX) -> value mgcp_cmd {
 		log("f_mo_call_establish 5: rx MDCX for the RAN side");
-		var SDP_Message sdp := valueof(ts_SDP(cpars.mgw_conn_2.mgw_rtp_ip, cpars.mgw_conn_2.mgw_rtp_ip,
+		var SDP_Message sdp := valueof(ts_SDP(cpars.mgw_conn_1.mgw_rtp_ip, cpars.mgw_conn_1.mgw_rtp_ip,
 							hex2str(cpars.mgcp_call_id), "42",
-							cpars.mgw_conn_2.mgw_rtp_port,
+							cpars.mgw_conn_1.mgw_rtp_port,
 							{ int2str(cpars.rtp_payload_type) },
 							{ valueof(ts_SDP_rtpmap(cpars.rtp_payload_type,
 										cpars.rtp_sdp_format)),
@@ -1439,7 +1439,7 @@
 			}
 			mgcp_resp := ts_MDCX_ACK_osmux(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id, osmux_cid, sdp);
 		} else {
-			mgcp_resp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_2.mgcp_connection_id, sdp);
+			mgcp_resp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id, sdp);
 		}
 		MGCP.send(mgcp_resp);
 		}
