diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index cb37677..06085c6 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -6181,6 +6181,45 @@
 	vc_conn.done;
 }
 
+/* try to RSL CHAN ACT the SDCCH8 on an osmocom-style PDCH */
+private function f_TC_dyn_osmo_pdch_sdcch8_act(charstring id) runs on ConnHdlr {
+	var PCUIF_Message first_info;
+	var integer ts_nr := g_chan_nr.tn;
+	var integer trx_nr := 0;
+	var integer bts_nr := 0;
+	var integer pcu_conn_id := -1;
+	var RslChannelNr chan_nr[8] := { valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 0)),
+					 valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 1)),
+					 valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 2)),
+					 valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 3)),
+					 valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 4)),
+					 valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 5)),
+					 valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 6)),
+					 valueof(t_RslChanNr_SDCCH8(g_chan_nr.tn, 7)) };
+
+	/* register for the TCH/H channel numbers */
+	for (var integer i := 0; i < lengthof(chan_nr); i := i + 1) {
+		f_rslem_register(0, chan_nr[i]);
+	}
+
+	f_init_pcu(PCU, id, pcu_conn_id, first_info);
+
+	for (var integer i := 0; i < lengthof(chan_nr); i := i + 1) {
+		f_rsl_transceive(ts_RSL_CHAN_ACT(chan_nr[i], g_pars.chan_mode),
+				 tr_RSL_CHAN_ACT_ACK(chan_nr[i]), "RSL CHAN ACT [" & int2str(i) & "]");
+	}
+	setverdict(pass);
+}
+testcase TC_dyn_osmo_pdch_sdcch8_act() runs on test_CT {
+	var ConnHdlrPars pars;
+	var ConnHdlr vc_conn;
+	f_init();
+
+	pars := valueof(t_Pars(t_RslChanNr_PDCH(4), ts_RSL_ChanMode_SIGN));
+	vc_conn := f_start_handler(refers(f_TC_dyn_osmo_pdch_sdcch8_act), pars, true);
+	vc_conn.done;
+}
+
 /***********************************************************************
  * IPA Style Dynamic Timeslot Support
  ***********************************************************************/
@@ -7647,6 +7686,7 @@
 	execute( TC_dyn_osmo_pdch_unsol_deact() );
 	execute( TC_dyn_osmo_pdch_tchf_act() );
 	execute( TC_dyn_osmo_pdch_tchh_act() );
+	execute( TC_dyn_osmo_pdch_sdcch8_act() );
 	execute( TC_dyn_ipa_pdch_tchf_act() );
 	execute( TC_dyn_ipa_pdch_tchf_act_pdch_act_nack() );
 
