diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 1e89cf3..720669b 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -24,7 +24,7 @@
 import from IPL4asp_Types all;
 
 import from BSSAP_Types all;
-import from BSSAP_Adapter all;
+import from RAN_Adapter all;
 import from BSSAP_CodecPort all;
 import from BSSMAP_Templates all;
 import from IPA_Emulation all;
@@ -82,7 +82,7 @@
 	var MGCP_Emulation_CT vc_MGCP;
 	port TELNETasp_PT BSCVTY;
 
-	var BSSAP_Adapter g_bssap;
+	var RAN_Adapter g_bssap;
 	/* for old legacy-tests only */
 	port BSSAP_CODEC_PT BSSAP;
 
@@ -106,7 +106,7 @@
 	/* IP address at which the test binds */
 	charstring mp_test_ip := "127.0.0.1";
 
-	BSSAP_Configuration mp_bssap_cfg := {
+	RAN_Configuration mp_bssap_cfg := {
 		transport := BSSAP_TRANSPORT_AoIP,
 		sccp_service_type := "mtp3_itu",
 		sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" },
@@ -313,10 +313,10 @@
 	T_guard.start;
 	activate(as_Tguard());
 
-	/* Call a function of our 'parent component' BSSAP_Adapter_CT to start the
+	/* Call a function of our 'parent component' RAN_Adapter_CT to start the
 	 * MSC-side BSSAP emulation */
 	if (handler_mode) {
-		f_bssap_init(g_bssap, mp_bssap_cfg, "VirtMSC", MSC_BssmapOps);
+		f_bssap_init(g_bssap, mp_bssap_cfg, "VirtMSC", MSC_RanOps);
 		f_bssap_start(g_bssap);
 	} else {
 		f_bssap_init(g_bssap, mp_bssap_cfg, "VirtMSC", omit);
@@ -1625,10 +1625,10 @@
 
 
 /***********************************************************************
- * "New world" test cases using RSL_Emulation + BSSMAP_Emulation
+ * "New world" test cases using RSL_Emulation + RAN_Emulation
  ***********************************************************************/
 
-import from BSSMAP_Emulation all;
+import from RAN_Emulation all;
 import from RSL_Emulation all;
 import from MSC_ConnectionHandler all;
 
@@ -1636,7 +1636,7 @@
 
 /* helper function to create and connect a MSC_ConnHdlr component */
 private function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT {
-	connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC);
+	connect(vc_conn:RAN, g_bssap.vc_RAN:PROC);
 	connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC);
 	connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT);
 	connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC);
@@ -1644,7 +1644,7 @@
 		connect(vc_conn:RSL1, bts[1].rsl.vc_RSL:CLIENT_PT);
 		connect(vc_conn:RSL1_PROC, bts[1].rsl.vc_RSL:RSL_PROC);
 	}
-	connect(vc_conn:BSSAP, g_bssap.vc_BSSMAP:CLIENT);
+	connect(vc_conn:BSSAP, g_bssap.vc_RAN:CLIENT);
 	connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT);
 }
 
@@ -3096,7 +3096,7 @@
 
 	BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,
 				     f_gen_handover_req()));
-	BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
+	BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
 
 	/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
 
@@ -3168,7 +3168,7 @@
 
 	BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,
 				     f_gen_handover_req()));
-	BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
+	BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
 
 	/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
 
@@ -3253,7 +3253,7 @@
 
 	BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,
 				     f_gen_handover_req()));
-	BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
+	BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
 
 	/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
 
@@ -3339,7 +3339,7 @@
 
 	BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,
 				     f_gen_handover_req()));
-	BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
+	BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
 
 	/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
 
@@ -3430,7 +3430,7 @@
 
 	BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc,
 				     f_gen_handover_req()));
-	BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
+	BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND);
 
 	/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
 
