diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn
index 229aff0..ab99538 100644
--- a/library/LAPDm_RAW_PT.ttcn
+++ b/library/LAPDm_RAW_PT.ttcn
@@ -47,13 +47,27 @@
 	/* PH-DATA.ind / PH-DATA.req */
 	type record RLCMAC_ph_data_ind {
 		GprsCodingScheme cs,
+		uint8_t ts_nr,
+		GsmFrameNumber fn,
 		RlcmacDlBlock block
 	}
-	type record RLCMAC_ph_data_req {
+	type record RLCMAC_ph_data_req_dyn {
 		uint8_t tbf_id,
 		GprsCodingScheme cs,
 		RlcmacUlBlock block
 	}
+	type record RLCMAC_ph_data_req_abs {
+		uint8_t tbf_id,
+		GprsCodingScheme cs,
+		uint8_t ts_nr,
+		GsmFrameNumber fn,
+		Arfcn arfcn,
+		RlcmacUlBlock block
+	}
+	type union RLCMAC_ph_data_req {
+		RLCMAC_ph_data_req_dyn	dyn,
+		RLCMAC_ph_data_req_abs	abs
+	}
 
 	/* port from our (internal) point of view */
 	type port LAPDm_SP_PT message {
@@ -223,6 +237,19 @@
 		}
 	};
 
+	template (value) RLCMAC_ph_data_req ts_PH_DATA_ABS(uint8_t tbf_id, GprsCodingScheme cs,
+							   uint8_t ts, uint32_t fn, Arfcn arfcn,
+							   RlcmacUlBlock block) := {
+		abs := {
+			tbf_id := tbf_id,
+			cs := CS1,	/* FIXME */
+			ts_nr := ts,
+			fn := fn,
+			arfcn := arfcn,
+			block := block
+		}
+	}
+
 	private function f_establish_tbf(uint8_t ra) runs on lapdm_CT {
 		var ImmediateAssignment imm_ass;
 		var GsmFrameNumber rach_fn;
@@ -377,6 +404,8 @@
 			/* decode + forward any blocks from L1 to L23*/
 			[] L1CTL.receive(t_L1CTL_DATA_IND(t_RslChanNr_PDCH(?))) -> value dl {
 				rpdi.block := dec_RlcmacDlBlock(dl.payload.data_ind.payload);
+				rpdi.fn := dl.dl_info.frame_nr;
+				rpdi.ts_nr := dl.dl_info.chan_nr.tn;
 				rpdi.cs := CS1; /* FIXME */
 				log("RPDI: ", rpdi);
 				LAPDM_SP.send(rpdi);
@@ -387,9 +416,15 @@
 			/* encode + forward any blocks from L23 to L1 */
 			[] LAPDM_SP.receive(RLCMAC_ph_data_req:?) -> value rpdr {
 				var octetstring buf;
-
-				buf := enc_RlcmacUlBlock(rpdr.block);
-				L1CTL.send(t_L1CTL_DATA_TBF_REQ(buf, L1CTL_CS1, rpdr.tbf_id));
+				if (ischosen(rpdr.dyn)) {
+					buf := enc_RlcmacUlBlock(rpdr.dyn.block);
+					L1CTL.send(t_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,
+									rpdr.abs.ts_nr, rpdr.abs.fn,
+									L1CTL_CS1, rpdr.abs.tbf_id));
+				}
 			}
 
 			/* FIXME: release TBF mode */
