diff --git a/pcu/PCUIF_RAW_Components.ttcn b/pcu/PCUIF_RAW_Components.ttcn
index 6d29404..5516d83 100644
--- a/pcu/PCUIF_RAW_Components.ttcn
+++ b/pcu/PCUIF_RAW_Components.ttcn
@@ -278,6 +278,7 @@
 runs on RAW_PCU_BTS_CT {
 	var PCUIF_Message pcu_msg;
 	var RAW_PCU_Event event;
+	var integer ev_begin_fn;
 
 	[] CLCK.receive(tr_RAW_PCU_EV(TDMA_EV_PDTCH_BLOCK_BEG)) -> value event {
 		/* If the RTS queue for PDTCH is not empty, send a message */
@@ -296,23 +297,27 @@
 		repeat;
 		}
 	[lengthof(pdtch_data_queue) > 0] CLCK.receive(tr_RAW_PCU_EV(TDMA_EV_PDTCH_BLOCK_END)) -> value event {
+		/* FN matching the beginning of current block: */
+		ev_begin_fn := event.data.tdma_fn - 3;
 		/* Dequeue a DATA.ind message */
 		f_PCUIF_MsgQueue_dequeue(pdtch_data_queue, pcu_msg);
 
 		/* Patch TDMA frame / block number */
-		pcu_msg.u.data_ind.fn := event.data.tdma_fn;
+		pcu_msg.u.data_ind.fn := ev_begin_fn;
 		pcu_msg.u.data_ind.block_nr := 0; /* FIXME! */
 
 		PCUIF.send(pcu_msg); /* Send to the PCU and notify the TC */
-		TC.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PDTCH_BLOCK_SENT, event.data.tdma_fn));
+		TC.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PDTCH_BLOCK_SENT, ev_begin_fn));
 		repeat;
 		}
 	[lengthof(ptcch_rts_queue) > 0] CLCK.receive(tr_RAW_PCU_EV(TDMA_EV_PTCCH_DL_BLOCK)) -> value event {
+		/* FN matching the beginning of current block (PTCCH is interleaved over 4 non-consecutive bursts): */
+		ev_begin_fn := event.data.tdma_fn - 78;
 		/* Dequeue an RTS.req message for PTCCH */
 		f_PCUIF_MsgQueue_dequeue(ptcch_rts_queue, pcu_msg);
 
 		/* Patch TDMA frame / block number and send */
-		pcu_msg.u.rts_req.fn := event.data.tdma_fn;
+		pcu_msg.u.rts_req.fn := ev_begin_fn;
 		pcu_msg.u.rts_req.block_nr := 0; /* FIXME! */
 		PCUIF.send(pcu_msg);
 		repeat;
