diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index e17285e..33f4796 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -9007,7 +9007,6 @@
 	var integer i;
 	var integer chreq_total, chreq_nochan;
 	var RSL_Message rx_rsl;
-	var RslChannelNr chan_nr;
 
 	f_init(1);
 	f_sleep(1.0);
@@ -9019,7 +9018,7 @@
 	chreq_total := f_ctrl_get_ratectr_abs(IPA_CTRL, "bts", 0, "chreq:total");
 	chreq_nochan := f_ctrl_get_ratectr_abs(IPA_CTRL, "bts", 0, "chreq:no_channel");
 	for (i := 0; i < NUM_TCHF_PER_BTS + NUM_TCHH_PER_BTS + NUM_SDCCH_PER_BTS; i := i+1) {
-		chan_nr := f_chreq_act_ack('33'O, i);
+		f_chreq_act_ack('33'O, i);
 	}
 	IPA_RSL[0].clear;
 	f_ctrl_get_exp_ratectr_abs(IPA_CTRL, "bts", 0, "chreq:total",
@@ -9029,13 +9028,15 @@
 	f_ipa_tx(0, ts_RSL_CHAN_RQD('A5'O, 23));
 
 	/* Expect the BSC to release one (the first) TCH/F on the BTS */
-	chan_nr := valueof(t_RslChanNr_Bm(1));
-	f_expect_chan_rel(0, chan_nr, expect_rr_chan_rel := false, expect_rll_rel_req := false);
+	var RslChannelNr first_tch := valueof(t_RslChanNr_Bm(1));
+	f_expect_chan_rel(0, first_tch, expect_rr_chan_rel := false, expect_rll_rel_req := false);
 
-	/* Expect the BSC to send activate/assign the a channel for the emergency call */
+	/* Expect the BSC to send activate/assign the channel for the emergency call */
 	rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
-	chan_nr := rx_rsl.ies[0].body.chan_nr;
-	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 33));
+	if (first_tch != rx_rsl.ies[0].body.chan_nr) {
+		setverdict(fail, "different TCH lchan activated than expected");
+	}
+	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(first_tch, 33));
 	rx_rsl := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));
 
 	f_shutdown_helper();
