diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 9f2e366..b2d6383 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -782,6 +782,15 @@
 friend function f_send_meas_rep(template (value) MeasurementResults meas_res)
 runs on ConnHdlr {
 	var template (value) SacchL1Header l1h;
+
+	l1h := ts_SacchL1Header(g_pars.l1_pars.ms_power_level, g_pars.l1_pars.ms_actual_ta);
+	f_send_meas_rep_l1h(meas_res, l1h);
+}
+
+/* Send the given measurement results and L1H to the IUT over the Um interface */
+friend function f_send_meas_rep_l1h(template (value) MeasurementResults meas_res,
+				    template (value) SacchL1Header l1h)
+runs on ConnHdlr {
 	var octetstring l2;
 
 	/* RR Measurement Report to be sent */
@@ -792,7 +801,8 @@
 
 	/* TITAN has weird (and often unusable) padding model, so we pad here manaully */
 	l2 := f_pad_oct(enc_LapdmFrameAB(valueof(ts_LAPDm_AB(0, meas_rep))), 21, '00'O);
-	l1h := ts_SacchL1Header(g_pars.l1_pars.ms_power_level, g_pars.l1_pars.ms_actual_ta);
+
+	log(%definitionId, "(): Tx SACCH L1 header: ", l1h);
 
 	/* Send RR Measurement Report over the Um interface */
 	L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2));
@@ -2979,7 +2989,7 @@
 	T2.start;
 	alt {
 	[] as_l1_sacch_l1h(l1h) {
-		f_send_meas_rep(ts_MeasurementResults);
+		f_send_meas_rep_l1h(ts_MeasurementResults, l1h);
 
 		if (l1h.ms_power_lvl < (pwr_var + 6)) {
 			repeat;
@@ -3000,7 +3010,7 @@
 	T4.start;
 	alt {
 	[] as_l1_sacch_l1h(l1h) {
-		f_send_meas_rep(ts_MeasurementResults);
+		f_send_meas_rep_l1h(ts_MeasurementResults, l1h);
 
 		if (l1h.ms_power_lvl > pwr_var) {
 			repeat;
@@ -3045,7 +3055,7 @@
 	T1.start;
 	alt {
 	[] as_l1_sacch_l1h(l1h) {
-		f_send_meas_rep(ts_MeasurementResults);
+		f_send_meas_rep_l1h(ts_MeasurementResults, l1h);
 		repeat;
 		}
 	[] L1CTL.receive { repeat; }
@@ -3094,7 +3104,7 @@
 	T1.start;
 	alt {
 	[] as_l1_sacch_l1h(l1h) {
-		f_send_meas_rep(ts_MeasurementResults);
+		f_send_meas_rep_l1h(ts_MeasurementResults, l1h);
 		repeat;
 		}
 	[] L1CTL.receive { repeat; }
