diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn
index f5d1926..d6d3be4 100644
--- a/library/LAPDm_RAW_PT.ttcn
+++ b/library/LAPDm_RAW_PT.ttcn
@@ -165,7 +165,7 @@
 
 	/* release the dedicated radio channel */
 	private function f_release_dcch() runs on lapdm_CT {
-		L1CTL.send(t_L1CTL_DM_REL_REQ(chan_desc.chan_nr));
+		L1CTL.send(ts_L1CTL_DM_REL_REQ(chan_desc.chan_nr));
 		set_ph_state(PH_STATE_BCH);
 	}
 
@@ -386,7 +386,7 @@
 			}
 
 			/* forward CCCH SAPI from L1CTL to User */
-			[] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_BCCH(0))) -> value dl {
+			[] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0))) -> value dl {
 				lpd.sacch := false;
 				lpd.sapi := 0;
 				lpd.lapdm.bbis := dec_LapdmFrameBbis(dl.payload.data_ind.payload);
@@ -394,7 +394,7 @@
 			}
 
 			/* forward BCCH SAPI from L1CTL to User */
-			[] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
+			[] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0))) -> value dl {
 				lpd.sacch := false;
 				lpd.sapi := 0;
 				lpd.lapdm.bbis := dec_LapdmFrameBbis(dl.payload.data_ind.payload);
@@ -425,7 +425,7 @@
 			alt {
 
 			/* decode any received DATA frames for the dedicated channel and pass them up */
-			[] L1CTL.receive(t_L1CTL_DATA_IND(chan_desc.chan_nr)) -> value dl {
+			[] L1CTL.receive(tr_L1CTL_DATA_IND(chan_desc.chan_nr)) -> value dl {
 				if (dl.dl_info.link_id.c == SACCH) {
 					lpd.sacch := true;
 					/* FIXME: how to deal with UI frames in B4 format (lo length!) */
@@ -447,7 +447,7 @@
 					link_id := valueof(ts_RslLinkID_DCCH(lpd.sapi));
 				}
 				buf := enc_LapdmFrame(lpd.lapdm);
-				L1CTL.send(t_L1CTL_DATA_REQ(chan_desc.chan_nr, link_id, buf));
+				L1CTL.send(ts_L1CTL_DATA_REQ(chan_desc.chan_nr, link_id, buf));
 			}
 
 			/* Release dedicated channel */
@@ -465,7 +465,7 @@
 			alt {
 
 			/* decode + forward any blocks from L1 to L23*/
-			[] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PDCH(?))) -> value dl {
+			[] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PDCH(?))) -> value dl {
 				rpdi.block := dec_RlcmacDlBlock(dl.payload.data_ind.payload);
 				/* FIXME: Filter based on g_tbf_dl */
 				rpdi.fn := dl.dl_info.frame_nr;
@@ -482,10 +482,10 @@
 				var octetstring buf;
 				if (ischosen(rpdr.dyn)) {
 					buf := enc_RlcmacUlBlock(rpdr.dyn.block);
-					L1CTL.send(t_L1CTL_DATA_TBF_REQ(buf, L1CTL_CS1, rpdr.dyn.tbf_id));
+					L1CTL.send(ts_L1CTL_DATA_TBF_REQ(buf, L1CTL_CS1, rpdr.dyn.tbf_id));
 				} else {
 					buf := enc_RlcmacUlBlock(rpdr.abs.block);
-					L1CTL.send(t_L1CTL_DATA_ABS_REQ(buf, rpdr.abs.arfcn,
+					L1CTL.send(ts_L1CTL_DATA_ABS_REQ(buf, rpdr.abs.arfcn,
 									rpdr.abs.ts_nr, rpdr.abs.fn,
 									L1CTL_CS1, rpdr.abs.tbf_id));
 				}
