diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index f6e1b2c..784375a 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -3020,7 +3020,7 @@
 	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
 
 	f_establish_fully(ass_cmd, exp_compl);
-	f_bts_0_cfg({"neighbor bts 1"});
+	f_bts_0_cfg(BSCVTY, {"neighbor bts 1"});
 
 	var HandoverState hs := {
 		rr_ho_cmpl_seen := false,
@@ -3102,7 +3102,7 @@
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
 	f_establish_fully(ass_req, exp_compl);
 
-	f_bts_0_cfg({"neighbor lac 99 arfcn 123 bsic any"});
+	f_bts_0_cfg(BSCVTY, {"neighbor lac 99 arfcn 123 bsic any"});
 	f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any");
 
 	BSSAP.receive(tr_BSSMAP_HandoverRequired);
@@ -3169,7 +3169,7 @@
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
 	f_establish_fully(ass_req, exp_compl);
 
-	f_bts_0_cfg({"neighbor lac 99 arfcn 123 bsic any"});
+	f_bts_0_cfg(BSCVTY, {"neighbor lac 99 arfcn 123 bsic any"});
 	f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any");
 
 	BSSAP.receive(tr_BSSMAP_HandoverRequired);
@@ -3216,7 +3216,7 @@
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
 	f_establish_fully(ass_req, exp_compl);
 
-	f_bts_0_cfg({"neighbor lac 99 arfcn 123 bsic any"});
+	f_bts_0_cfg(BSCVTY, {"neighbor lac 99 arfcn 123 bsic any"});
 	f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any");
 
 	BSSAP.receive(tr_BSSMAP_HandoverRequired);
@@ -3301,7 +3301,7 @@
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
 	f_establish_fully(ass_req, exp_compl);
 
-	f_bts_0_cfg({"neighbor lac 99 arfcn 123 bsic any"});
+	f_bts_0_cfg(BSCVTY, {"neighbor lac 99 arfcn 123 bsic any"});
 	f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any");
 
 	BSSAP.receive(tr_BSSMAP_HandoverRequired);
@@ -3760,13 +3760,13 @@
 
 type record of charstring Commands;
 
-private function f_bts_0_cfg(Commands cmds := {}) runs on MSC_ConnHdlr
+private function f_bts_0_cfg(TELNETasp_PT pt, Commands cmds := {})
 {
-	f_vty_enter_cfg_bts(BSCVTY, 0);
+	f_vty_enter_cfg_bts(pt, 0);
 	for (var integer i := 0; i < sizeof(cmds); i := i+1) {
-		f_vty_transceive(BSCVTY, cmds[i]);
+		f_vty_transceive(pt, cmds[i]);
 	}
-	f_vty_transceive(BSCVTY, "end");
+	f_vty_transceive(pt, "end");
 }
 
 private function f_cs7_inst_0_cfg(TELNETasp_PT pt, Commands cmds := {})
@@ -3920,7 +3920,7 @@
 	 */
 
 	log("f_tc_ho_neighbor_config: 1. No 'neighbor' config");
-	f_bts_0_cfg({"no neighbors"});
+	f_bts_0_cfg(BSCVTY, {"no neighbors"});
 	f_probe_for_handover("1.a", "HO to bts 1 works, implicitly listed as neighbor (legacy behavior when none are configured)",
 			"handover any to arfcn 871 bsic 11",
 			true);
@@ -3948,7 +3948,7 @@
 	 */
 
 	log("f_tc_ho_neighbor_config: 2. explicit local neighbor: 'neighbor bts 1'");
-	f_bts_0_cfg({"neighbor bts 1"});
+	f_bts_0_cfg(BSCVTY, {"neighbor bts 1"});
 	f_sleep(0.5);
 
 	f_probe_for_handover("2.a", "HO to bts 1 works, explicitly listed as neighbor",
@@ -3970,7 +3970,7 @@
 	 */
 
 	log("f_tc_ho_neighbor_config: 3. explicit local neighbor: 'neighbor bts 2'");
-	f_bts_0_cfg({"no neighbors", "neighbor bts 2"});
+	f_bts_0_cfg(BSCVTY, {"no neighbors", "neighbor bts 2"});
 	f_sleep(0.5);
 
 	f_probe_for_handover("3.a", "HO to bts 1 doesn't work, not listed as neighbor",
@@ -3991,7 +3991,7 @@
 	 */
 
 	log("f_tc_ho_neighbor_config: 4. explicit remote neighbor: 'neighbor lac 99 arfcn 123 bsic 45'");
-	f_bts_0_cfg({"no neighbors", "neighbor lac 99 arfcn 123 bsic 45"});
+	f_bts_0_cfg(BSCVTY, {"no neighbors", "neighbor lac 99 arfcn 123 bsic 45"});
 	f_sleep(0.5);
 
 	f_probe_for_handover("4.a", "HO to bts 1 doesn't work, not listed as neighbor",
@@ -4015,7 +4015,7 @@
 	 */
 
 	log("f_tc_ho_neighbor_config: 5. explicit remote neighbor re-using ARFCN+BSIC: 'neighbor lac 99 arfcn 871 bsic 12'");
-	f_bts_0_cfg({"no neighbors", "neighbor lac 99 arfcn 871 bsic 12"});
+	f_bts_0_cfg(BSCVTY, {"no neighbors", "neighbor lac 99 arfcn 871 bsic 12"});
 	f_sleep(0.5);
 
 	f_probe_for_handover("5.a", "HO to 871-12 triggers inter-BSC HO (ignoring local cells with same ARFCN+BSIC)",
@@ -4034,7 +4034,7 @@
 
 	log("f_tc_ho_neighbor_config: 6. config error: explicit local and remote neighbors with ambiguous ARFCN+BSIC:"
 	    & " 'neighbor bts 2; neighbor lac 99 arfcn 871 bsic 12'");
-	f_bts_0_cfg({"no neighbors", "neighbor bts 2", "neighbor lac 99 arfcn 871 bsic 12"});
+	f_bts_0_cfg(BSCVTY, {"no neighbors", "neighbor bts 2", "neighbor lac 99 arfcn 871 bsic 12"});
 	f_sleep(0.5);
 
 	f_probe_for_handover("6.a", "HO to 871-12 is ambiguous = error",
@@ -4053,7 +4053,7 @@
 
 	log("f_tc_ho_neighbor_config: 7. explicit local and remote neighbors:"
 	    & " 'neighbor bts 2; neighbor lac 99 arfcn 123 bsic 45'");
-	f_bts_0_cfg({"no neighbors", "neighbor bts 2", "neighbor lac 99 arfcn 123 bsic 45"});
+	f_bts_0_cfg(BSCVTY, {"no neighbors", "neighbor bts 2", "neighbor lac 99 arfcn 123 bsic 45"});
 	f_sleep(0.5);
 
 	f_probe_for_handover("7.a", "HO to 871-12 does HO to bts 2",
