diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 5757e35..2e35ce9 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -300,6 +300,7 @@
 };
 
 type record ConnHdlrPars {
+	uint8_t trx_nr,
 	RslChannelNr chan_nr,
 	RSL_IE_ChannelMode chan_mode,
 	float t_guard,
@@ -733,7 +734,7 @@
 	g_Tguard.start(pars.t_guard);
 	activate(as_Tguard());
 
-	f_rslem_register(0, pars.chan_nr);
+	f_rslem_register(pars.trx_nr, pars.chan_nr);
 
 	/* call the user-supplied test case function */
 	fn.apply(id);
@@ -797,7 +798,8 @@
 friend template ConnHdlrPars t_Pars(template RslChannelNr chan_nr,
 				    template RSL_IE_ChannelMode chan_mode,
 				    template (omit) TestSpecUnion spec := omit,
-				    float t_guard := 20.0) := {
+				    uint8_t trx_nr := 0, float t_guard := 20.0) := {
+	trx_nr := trx_nr,
 	chan_nr := valueof(chan_nr),
 	chan_mode := valueof(chan_mode),
 	t_guard := t_guard,
@@ -2220,8 +2222,9 @@
 /* Tune to a dedicated channel: L1CTL only */
 private function f_l1ctl_est_dchan(L1CTL_PT pt, ConnHdlrPars pars) {
 	if (not pars.fhp.enabled) {
+		var TrxParsItem trx_pars := mp_trx_pars[pars.trx_nr];
 		pt.send(ts_L1CTL_DM_EST_REQ_H0(pars.chan_nr, pars.tsc,
-						mp_trx_pars[0].arfcn));
+						trx_pars.arfcn));
 	} else {
 		pt.send(ts_L1CTL_DM_EST_REQ_H1(pars.chan_nr, pars.tsc,
 						pars.fhp.maio_hsn.hsn,
@@ -2241,7 +2244,8 @@
 	if (g_pars.fhp.enabled) {
 		ch_desc := valueof(ts_ChanDescH1(g_pars.chan_nr, g_pars.fhp.maio_hsn, g_pars.tsc));
 	} else {
-		ch_desc := valueof(ts_ChanDescH0(g_pars.chan_nr, mp_trx_pars[0].arfcn, g_pars.tsc));
+		var TrxParsItem trx_pars := mp_trx_pars[g_pars.trx_nr];
+		ch_desc := valueof(ts_ChanDescH0(g_pars.chan_nr, trx_pars.arfcn, g_pars.tsc));
 	}
 
 	/* enable dedicated mode */
