diff --git a/library/IPA_Emulation.ttcn b/library/IPA_Emulation.ttcn
index c8111e2..755cbba 100644
--- a/library/IPA_Emulation.ttcn
+++ b/library/IPA_Emulation.ttcn
@@ -53,11 +53,17 @@
 	RSL_Message	rsl
 };
 
-template ASP_RSL_Unitdata t_ASP_RSL_UD(IpaStreamId sid, template RSL_Message rsl) := {
+template ASP_RSL_Unitdata ts_ASP_RSL_UD(IpaStreamId sid, template RSL_Message rsl) := {
 	streamId := sid,
 	rsl := valueof(rsl)
 }
 
+template ASP_RSL_Unitdata tr_ASP_RSL_UD(IpaStreamId sid, template RSL_Message rsl) := {
+	streamId := sid,
+	rsl := rsl
+}
+
+
 template IpaStreamId t_IpaSidRSL := ( IPAC_PROTO_RSL_TRX0, IPAC_PROTO_RSL_TRX1,
 				      IPAC_PROTO_RSL_TRX2, IPAC_PROTO_RSL_TRX3 );
 
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn
index c443960..1db82b7 100644
--- a/library/RSL_Emulation.ttcn
+++ b/library/RSL_Emulation.ttcn
@@ -232,7 +232,7 @@
 	while (true) {
 		alt {
 		[] IPA_PT.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_ID_ACK}) {
-			IPA_PT.send(t_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,ts_RSL_RACH_PAGING_IND(23)));
+			IPA_PT.send(ts_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,ts_RSL_PAGING_LOAD_IND(23)));
 			}
 		[] IPA_PT.receive(tr_RSL(tr_RSL_IMM_ASSIGN)) -> value rx_rsl {
 			var GsmRrMessage rr;
@@ -292,7 +292,7 @@
 		/* blindly acknowledge all channel activations */
 		[] IPA_PT.receive(tr_RSL(tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV))) -> value rx_rsl {
 			var RslChannelNr chan_nr := rx_rsl.rsl.ies[0].body.chan_nr;
-			IPA_PT.send(t_ASP_RSL_UD(rx_rsl.streamId, ts_RSL_CHAN_ACT_ACK(chan_nr, 23)));
+			IPA_PT.send(ts_ASP_RSL_UD(rx_rsl.streamId, ts_RSL_CHAN_ACT_ACK(chan_nr, 23)));
 		}
 
 		[] IPA_PT.receive(tr_RSL(tr_RSL_MsgTypeDR(?))) -> value rx_rsl {
@@ -314,14 +314,14 @@
 		[] CLIENT_PT.receive(RSLDC_ChanRqd:?) -> value chan_rqd sender vc_conn {
 			/* Store the knowledge that this sender has requested a certain RQ+time */
 			f_cid_create(chan_rqd.ra, chan_rqd.fn, vc_conn);
-			IPA_PT.send(t_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
+			IPA_PT.send(ts_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
 						 ts_RSL_CHAN_RQD(chan_rqd.ra, chan_rqd.fn)));
 			}
 
 		[] CLIENT_PT.receive(tr_RSL_MsgType(?)) -> value rx_rsl_msg sender vc_conn {
 			/* forward to BSC */
 			cid := f_cid_by_comp_ref(vc_conn);
-			IPA_PT.send(t_ASP_RSL_UD(ConnectionTable[cid].stream_id, rx_rsl_msg));
+			IPA_PT.send(ts_ASP_RSL_UD(ConnectionTable[cid].stream_id, rx_rsl_msg));
 			}
 
 		}
