diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 344be1f..5637f63 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -5944,23 +5944,22 @@
 	setverdict(pass);
 }
 
-private function f_TC_pcu_data_ind_lqual_cb(int16_t lqual_cb_exp, int16_t thresh)
+private function f_TC_pcu_data_ind_lqual_cb(int16_t lqual_cb_exp)
 runs on test_CT {
 	var PCUIF_Message msg;
-	var int16_t lqual_cb;
 	timer T := 1.0;
 
 	L1CTL.clear;
 	PCU.clear;
 
 	/* Send a random Uplink block over the Um */
-	f_TC_pcu_tx_ul_block_req('0000'O & f_rnd_octstring(21), tn := 7);
+	var octetstring data := '0000'O & f_rnd_octstring(21);
+	f_TC_pcu_tx_ul_block_req(data, tn := 7);
 
 	T.start;
 	alt {
-	/* If expected link quality is above the threshold */
-	[lqual_cb_exp >= thresh] as_pcuif_msg(msg, tr_PCUIF_DATA_IND) {
-		lqual_cb := msg.u.data_ind.lqual_cb;
+	[] as_pcuif_msg(msg, tr_PCUIF_DATA_IND(data := data)) {
+		var integer lqual_cb := msg.u.data_ind.lqual_cb;
 		log("Rx PCUIF_DATA.ind (lqual_cb=", lqual_cb, ")");
 
 		/* Make sure the actual link quality matches the expected value */
@@ -5971,18 +5970,9 @@
 			setverdict(pass);
 		}
 		}
-	/* If expected link quality is below the threshold */
-	[lqual_cb_exp < thresh] as_pcuif_msg(msg, tr_PCUIF_DATA_IND) {
-		Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
-					log2str("Rx unexpected PCUIF_DATA.ind: ", msg));
-		}
 	/* Ignore PCUIF_RTS.req and PCUIF_TIME.ind */
 	[] PCU.receive { repeat; }
-	[lqual_cb_exp < thresh] T.timeout {
-		log("Rx nothing, as expected");
-		setverdict(pass);
-		}
-	[lqual_cb_exp >= thresh] T.timeout {
+	[] T.timeout {
 		Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
 					"Timeout waiting for PCUIF_DATA.ind");
 		}
@@ -6010,9 +6000,8 @@
 
 		ret := f_TRXC_transceive(BTS_TRXC, g_bts_trxc_conn_id, ts_TRXC_FAKE_CI(i));
 
-		/* FIXME: OsmoBTS may have different threshold (see MIN_QUAL_NORM) */
 		log("Testing C/I=", i, " cB");
-		f_TC_pcu_data_ind_lqual_cb(i, thresh := 0);
+		f_TC_pcu_data_ind_lqual_cb(i);
 	}
 }
 
