diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn
index 7093f31..1cbca4c 100644
--- a/pcu/GPRS_Components.ttcn
+++ b/pcu/GPRS_Components.ttcn
@@ -949,19 +949,12 @@
 	}
 }
 
-/* High level (task specific) helper for receiving and matching GPRS/EGPRS data blocks */
-function f_rx_rlcmac_dl_block_exp_data(out RlcmacDlBlock dl_block, out uint32_t dl_fn,
+/* High level (task specific) helper for  matching GPRS/EGPRS data blocks */
+function f_rlcmac_dl_block_exp_data(in RlcmacDlBlock dl_block,
 				       template (present) octetstring data := ?,
 				       template (present) uint7_t exp_bsn := ?,
-				       template (present) CodingScheme exp_cs := ?,
-				       template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
+				       template (present) CodingScheme exp_cs := ?)
 runs on MS_BTS_IFACE_CT {
-	/* FIXME: ideally we should use an alt statement with timeout here, rather than
-	 * having +100500 layers of abstraction. This would facilitate developing the
-	 * multi-TBF/-TRX/-BTS tests, where you cannot expect that the first received
-	 * block is exactly what you need. */
-	f_rx_rlcmac_dl_block(dl_block, dl_fn, nr := nr);
-
 	/* Make sure it's either GPRS or EGPRS data block */
 	if (not match(dl_block, tr_RLCMAC_DATA)) {
 		setverdict(fail, "Failed to match DL DATA: ", dl_block, " vs ", tr_RLCMAC_DATA);
@@ -979,6 +972,22 @@
 	}
 }
 
+/* High level (task specific) helper for receiving and matching GPRS/EGPRS data blocks */
+function f_rx_rlcmac_dl_block_exp_data(out RlcmacDlBlock dl_block, out uint32_t dl_fn,
+				       template (present) octetstring data := ?,
+				       template (present) uint7_t exp_bsn := ?,
+				       template (present) CodingScheme exp_cs := ?,
+				       template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
+runs on MS_BTS_IFACE_CT {
+	/* FIXME: ideally we should use an alt statement with timeout here, rather than
+	 * having +100500 layers of abstraction. This would facilitate developing the
+	 * multi-TBF/-TRX/-BTS tests, where you cannot expect that the first received
+	 * block is exactly what you need. */
+	f_rx_rlcmac_dl_block(dl_block, dl_fn, nr := nr);
+
+	f_rlcmac_dl_block_exp_data(dl_block, data, exp_bsn, exp_cs);
+}
+
 function f_dl_block_ack_fn(in RlcmacDlBlock dl_block, uint32_t dl_fn)
 runs on MS_BTS_IFACE_CT return uint32_t {
 	var boolean rrbp_valid;
