diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 968ed6c..066aba0 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -1990,6 +1990,48 @@
 	Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
 }
 
+/* establish DChan, verify that the BTS sets MS power in the first SACCH L1 header. */
+function f_tc_rsl_chan_initial_ms_pwr(charstring id) runs on ConnHdlr {
+	var L1ctlDlMessage l1_dl;
+	var uint5_t ms_power_level := 7;
+
+	var RSL_IE_MS_Power ms_power;
+	ms_power.reserved := 0;
+	ms_power.fpc_epc := false;
+	ms_power.power_level := ms_power_level;
+
+	f_l1_tune(L1CTL);
+	RSL.clear;
+
+	f_est_dchan(more_ies :={valueof(t_RSL_IE(RSL_IE_MS_POWER, RSL_IE_Body:{ms_power := ms_power}))} );
+
+	timer T := 1.0;
+	T.start;
+	alt {
+	/* Pick all SACCH blocks for checking */
+	[] L1CTL.receive(tr_L1CTL_DATA_IND(g_chan_nr, tr_RslLinkID_SACCH(?))) -> value l1_dl {
+		/* The first byte of the L1 header contains the power level.. */
+		if (not (l1_dl.payload.data_ind.payload[0] == int2oct(ms_power_level, 1))) {
+			setverdict(fail, "Power Level in L1 header does not match the signaled (RSL) MS Power Level.");
+		}
+		}
+	/* Ignore all other blocks */
+	[] L1CTL.receive { repeat; }
+	[] T.timeout {
+		setverdict(fail, "Power Level in L1 header does not match the signaled (RSL) MS Power Level.");
+		}
+	}
+
+	f_rsl_chan_deact();
+	f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr);
+	setverdict(pass);
+}
+
+testcase TC_rsl_chan_initial_ms_pwr() runs on test_CT {
+	var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN));
+	f_testmatrix_each_chan(pars, refers(f_tc_rsl_chan_initial_ms_pwr));
+}
+
 /* Test if a channel without valid uplink bursts generates RSL CONN FAIL IND (TS 48.058 4.10) */
 private function f_TC_conn_fail_crit(charstring id) runs on ConnHdlr {
 	f_l1_tune(L1CTL);
@@ -5200,6 +5242,7 @@
 	execute( TC_meas_res_sign_sdcch8() );
 	execute( TC_meas_res_sign_tchh_toa256() );
 	execute( TC_rsl_ms_pwr_ctrl() );
+	execute( TC_rsl_chan_initial_ms_pwr() );
 	execute( TC_rsl_chan_initial_ta() );
 	execute( TC_conn_fail_crit() );
 	execute( TC_paging_imsi_80percent() );
