diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 223e55b..5cf1900 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -778,12 +778,31 @@
 	var RSL_Message rx := f_rsl_transceive_ret(tx, exp_rx, id, ignore_other);
 }
 
+/* Send the given measurement results to the IUT over the Um interface */
+friend function f_send_meas_rep(template (value) MeasurementResults meas_res)
+runs on ConnHdlr {
+	var template (value) SacchL1Header l1h;
+	var octetstring l2;
+
+	/* RR Measurement Report to be sent */
+	var GsmRrL3Message meas_rep := {
+		header := valueof(t_RrL3Header(MEASUREMENT_REPORT)),
+		payload := { meas_rep := { meas_res := valueof(meas_res) } }
+	};
+
+	/* 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);
+
+	/* Send RR Measurement Report over the Um interface */
+	L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2));
+}
+
 /* Send the given measurement results to the IUT over the Um interface,
  * wait for the IUT to receive then and forward over the A-bis/RSL interface. */
 friend function f_transceive_meas_rep(template (value) MeasurementResults meas_res)
 runs on ConnHdlr {
-	var template (value) SacchL1Header l1h;
-	var octetstring l2, l3;
+	var octetstring l3;
 	timer T;
 
 	/* RR Measurement Report to be sent */
@@ -794,11 +813,8 @@
 
 	/* TITAN has weird (and often unusable) padding model, so we pad here manaully */
 	l3 := f_pad_oct(enc_GsmRrL3Message(meas_rep), 18, '00'O);
-	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);
 
-	/* Send RR Measurement Report over the Um interface */
-	L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(g_chan_nr, ts_RslLinkID_SACCH(0), l1h, l2));
+	f_send_meas_rep(meas_res);
 
 	/* Expect MEASurement RESult on the A-bis/RSL interface */
 	T.start(2.0);
