diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 6860907..61ae49e 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -5039,12 +5039,12 @@
 	interleave {
 	[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE(int2oct(enum2int(rr_cause), 1)))) {}
 	[] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {}
-	[] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
+	[] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
 			RSL.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr));
 			f_rslem_unregister(0, g_chan_nr);
 		}
 	[] RSL1.receive(tr_RSL_DEACT_SACCH(new_chan_nr)) {}
-	[] RSL1.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
+	[] RSL1.receive(tr_RSL_RF_CHAN_REL(new_chan_nr)) {
 			RSL1.send(ts_RSL_RF_CHAN_REL_ACK(new_chan_nr));
 			f_rslem_unregister(0, g_chan_nr, PT := RSL1_PROC);
 		}
@@ -5424,7 +5424,7 @@
 	[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) {
 			log("Got RR Release");
 		}
-	[] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
+	[] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
 			log("Got RF Chan Rel");
 			RSL.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr));
 			f_rslem_unregister(0, g_chan_nr);
@@ -7224,7 +7224,7 @@
 	[] rsl_pt.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {
 			f_logp(BSCVTY, "Got RSL Deact SACCH");
 		}
-	[] rsl_pt.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
+	[] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
 			f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack");
 			rsl_pt.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr));
 			f_rslem_unregister(0, g_chan_nr, PT := rsl_proc_pt);
@@ -7250,7 +7250,7 @@
 			/* Also drop the SCCP connection */
 			BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ);
 		}
-	[] rsl_pt.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
+	[] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
 			f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack");
 			rsl_pt.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr));
 			f_rslem_unregister(0, g_chan_nr, PT := rsl_proc_pt);
@@ -9210,7 +9210,7 @@
 	[] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {
 			f_logp(BSCVTY, "Got RSL Deact SACCH");
 		}
-	[] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
+	[] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
 			f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack");
 			RSL.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr));
 			f_rslem_unregister(0, g_chan_nr);
@@ -9388,7 +9388,7 @@
 	[] MGCP.receive(tr_DLCX) {}
 	[] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) {}
 	[] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {}
-	[] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) {
+	[] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) {
 			RSL.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr));
 			f_rslem_unregister(0, g_chan_nr);
 		}
