diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn
index e4b03c1..bc0cb7f 100644
--- a/pcu/PCU_Tests_RAW.ttcn
+++ b/pcu/PCU_Tests_RAW.ttcn
@@ -741,7 +741,7 @@
 	dl_fn := pcu_msg.u.data_req.fn;
 }
 
-private function f_rx_rlcmac_dl_block_exp_ack_nack(out RlcmacDlBlock dl_block)
+private function f_rx_rlcmac_dl_block_exp_ack_nack(out RlcmacDlBlock dl_block, out uint32_t poll_fn)
 runs on RAW_PCU_Test_CT {
 	var uint32_t dl_fn;
 
@@ -750,6 +750,8 @@
 		setverdict(fail, "Failed to match Packet Uplink ACK / NACK");
 		mtc.stop;
 	}
+
+	poll_fn := dl_fn + f_rrbp_fn_delay(dl_block.ctrl.mac_hdr.rrbp);
 }
 
 private function f_rx_rlcmac_dl_block_exp_dummy(out RlcmacDlBlock dl_block)
@@ -1084,6 +1086,7 @@
 	var PCUIF_Message pcu_msg;
 	var octetstring data;
 	var boolean ok;
+	var uint32_t unused_fn;
 
 	/* Initialize the PCU interface abstraction */
 	f_init_raw(testcasename());
@@ -1135,7 +1138,7 @@
 		f_tx_rlcmac_ul_block(ul_data, lqual * 10);
 
 		/* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */
-		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);
+		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);
 
 		log("Rx Packet Uplink ACK / NACK with Channel Coding Command: ",
 		    dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd);
@@ -1167,6 +1170,7 @@
 	var boolean ok;
 	var integer lqual_cb;
 	var ChCodingCommand last_ch_coding;
+	var uint32_t unused_fn;
 
 	/* Initialize the PCU interface abstraction */
 	f_init_raw(testcasename());
@@ -1211,7 +1215,7 @@
 		f_tx_rlcmac_ul_block(ul_data, lqual_cb);
 
 		/* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */
-		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);
+		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);
 		last_ch_coding := dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd;
 	}
 
@@ -1235,7 +1239,7 @@
 		f_tx_rlcmac_ul_block(ul_data, 0); /* 0 dB, make sure we downgrade CS */
 
 		/* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */
-		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);
+		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);
 
 		last_ch_coding := dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd;
 	}
@@ -1254,6 +1258,7 @@
 	var RlcmacDlBlock dl_block;
 	var boolean ok;
 	var ChCodingCommand last_ch_coding;
+	var uint32_t unused_fn;
 
 	/* Initialize the PCU interface abstraction */
 	f_init_raw(testcasename());
@@ -1295,7 +1300,7 @@
 		f_tx_rlcmac_ul_block(ul_data, 40*10); /* 40 dB */
 
 		/* Enqueue RTS.req, expect DATA.req with UL ACK from the PCU */
-		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);
+		f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);
 
 		last_ch_coding := dl_block.ctrl.payload.u.ul_ack_nack.gprs.ch_coding_cmd;
 	}
@@ -1316,6 +1321,7 @@
 	var PCUIF_Message pcu_msg;
 	var octetstring data;
 	var boolean ok;
+	var uint32_t unused_fn;
 	var OCT4 tlli := '00000001'O;
 
 	/* Initialize NS/BSSGP side */
@@ -1347,7 +1353,7 @@
 
 	/* Send one UL block and make sure it is ACKED fine */
 	f_tx_rlcmac_ul_n_blocks(ul_tbf_ass, 1);
-	f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);
+	f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn);
 	/* UL block should be received in SGSN */
 	BSSGP[0].receive(tr_BSSGP_UL_UD(tlli, mp_gb_cfg.cell_id));
 
@@ -1403,7 +1409,9 @@
 
 	/* Send one UL block and make sure it is ACKED fine */
 	f_tx_rlcmac_ul_n_blocks(ul_tbf_ass, 1);
-	f_rx_rlcmac_dl_block_exp_ack_nack(dl_block);
+	f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn);
+	/* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
+	f_tx_rlcmac_ul_block(ts_RLCMAC_CTRL_ACK(tlli), 0, sched_fn);
 
 	/* UL block should be received in SGSN */
 	BSSGP[0].receive(tr_BSSGP_UL_UD(tlli, mp_gb_cfg.cell_id));
