diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn
index 5a8d9ea..75d18d9 100644
--- a/library/LAPDm_RAW_PT.ttcn
+++ b/library/LAPDm_RAW_PT.ttcn
@@ -261,15 +261,6 @@
 		a[idx] := tfi_usf;
 	}
 
-	/* Match an IMM.ASS for an Uplink TBF with a dynamic allocation
-	 * FIXME: this template has nothing to do with LAPDm, move to GSM_RR_Types.ttcn */
-	template ImmediateAssignment t_IMM_ASS_TBF_UL_DYN(uint8_t ra, GsmFrameNumber fn) modifies t_IMM_ASS := {
-		ded_or_tbf := { spare := ?, tma := ?, downlink := false, tbf := true},
-		chan_desc := omit,
-		pkt_chan_desc := ?,
-		rest_octets := tr_IaRestOctets_ULAss(tr_PacketUlDynAssign())
-	};
-
 	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) := {
@@ -283,8 +274,10 @@
 		}
 	}
 
-	private function f_establish_tbf(uint8_t ra) runs on lapdm_CT {
+	private function f_establish_tbf(uint8_t ra) runs on lapdm_CT return boolean {
+		var template GsmRrMessage imm_ass_rr;
 		var ImmediateAssignment imm_ass;
+		var PacketUlAssign pkt_ul_ass;
 		var GsmFrameNumber rach_fn;
 		var TfiUsfArr tua := f_TfiUsfArrInit();
 
@@ -294,20 +287,35 @@
 		/* wait for receiving matching IMM ASS */
 		imm_ass := f_L1CTL_WAIT_IMM_ASS(L1CTL, ra, rach_fn);
 
-		if (match(imm_ass, t_IMM_ASS_TBF_UL_DYN(ra, rach_fn))) {
+		/* make sure we got *Packet* (Uplink) Immediate Assignment */
+		imm_ass_rr := tr_IMM_TBF_ASS(dl := false, ra := ra, fn := rach_fn,
+					     rest := tr_IaRestOctets_ULAss(?));
+		if (not match(imm_ass, imm_ass_rr.payload.imm_ass)) {
+			log("Failed to match Packet Immediate Assignment");
+			return false;
+		}
+
+		/* decapsulate PacketUlAssign for further matching */
+		pkt_ul_ass := imm_ass.rest_octets.hh.pa.uldl.ass.ul;
+
+		/* Dynamic Block Allocation */
+		if (match(pkt_ul_ass, tr_PacketUlDynAssign)) {
 			set_ph_state(PH_STATE_TBF);
 
 			/* store/save channel description */
 			//chan_desc := imm_ass.chan_desc;
 
 			/* Important: ARFCN, TN, TSC, USF, USF_GRANULARITY, CH_CODING_CMD */
-			f_TfiUsfArrSet(tua, imm_ass.pkt_chan_desc.tn,
-				       imm_ass.rest_octets.hh.pa.uldl.ass.ul.dynamic.usf);
+			f_TfiUsfArrSet(tua, imm_ass.pkt_chan_desc.tn, pkt_ul_ass.dynamic.usf);
 			f_L1CTL_TBF_CFG(L1CTL, true, tua);
-		} else {
-			/* FIXME: single block uplink allocation */
-			log("Failed to match ", t_IMM_ASS_TBF_UL_DYN(ra, rach_fn));
+			return true;
+		/* FIXME: Single Block Allocation */
+		} else if (match(pkt_ul_ass, tr_PacketUlSglAssign)) {
 			log("Non-dynamic UL TBF assignment not supported yet");
+			return false;
+		} else {
+			log("Failed to match Uplink Block Allocation: ", pkt_ul_ass);
+			return false;
 		}
 	}
 
