diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 68503dd..32a110a 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -116,6 +116,8 @@
 	FreqHopConfig mp_fh_config;
 	/* configuration for each individual transceiver */
 	TrxPars mp_trx_pars; /* see BTS_Tests.default */
+	/* default Training Sequence Code */
+	GsmTsc mp_tsc_def := 7;
 }
 
 type record of RslChannelNr ChannelNrs;
@@ -285,6 +287,8 @@
 	RSL_IE_EncryptionInfo encr optional,
 	BtsBand bts0_band optional,
 
+	/* Training Sequence Code */
+	GsmTsc tsc,
 	/* Frequency hopping parameters */
 	FreqHopPars fhp
 };
@@ -795,6 +799,7 @@
 	spec := omit,
 	encr := omit,
 	bts0_band := omit,
+	tsc := mp_tsc_def,
 	fhp := {
 		enabled := false,
 		maio_hsn := ts_HsnMaio(0, 0),
@@ -2177,12 +2182,10 @@
 /* Tune to a dedicated channel: L1CTL only */
 private function f_l1ctl_est_dchan(L1CTL_PT pt, ConnHdlrPars pars) {
 	if (not pars.fhp.enabled) {
-		pt.send(ts_L1CTL_DM_EST_REQ_H0(pars.chan_nr,
-						7 /* TODO: mp_tsc */,
+		pt.send(ts_L1CTL_DM_EST_REQ_H0(pars.chan_nr, pars.tsc,
 						mp_trx_pars[0].arfcn));
 	} else {
-		pt.send(ts_L1CTL_DM_EST_REQ_H1(pars.chan_nr,
-						7 /* TODO: mp_tsc */,
+		pt.send(ts_L1CTL_DM_EST_REQ_H1(pars.chan_nr, pars.tsc,
 						pars.fhp.maio_hsn.hsn,
 						pars.fhp.maio_hsn.maio,
 						pars.fhp.ma));
@@ -2204,9 +2207,9 @@
 
 	/* Craft channel description (with or without frequency hopping parameters) */
 	if (g_pars.fhp.enabled) {
-		ch_desc := valueof(ts_ChanDescH1(g_pars.chan_nr, g_pars.fhp.maio_hsn));
+		ch_desc := valueof(ts_ChanDescH1(g_pars.chan_nr, g_pars.fhp.maio_hsn, g_pars.tsc));
 	} else {
-		ch_desc := valueof(ts_ChanDescH0(g_pars.chan_nr, mp_trx_pars[0].arfcn));
+		ch_desc := valueof(ts_ChanDescH0(g_pars.chan_nr, mp_trx_pars[0].arfcn, g_pars.tsc));
 	}
 
 	/* Send IMM.ASS via CCHAN */
@@ -3764,7 +3767,8 @@
 
 	for (var integer i := 0; i < num_total; i := i+1) {
 		var ChannelDescription ch_desc := valueof(ts_ChanDescH0(ts_RslChanNr_SDCCH4(0, 0),
-									mp_trx_pars[0].arfcn));
+									mp_trx_pars[0].arfcn,
+									mp_tsc_def));
 		var GsmRrMessage ia := valueof(ts_IMM_ASS(42, i, 5, ch_desc, c_MA_null));
 		var octetstring ia_enc := enc_GsmRrMessage(ia);
 		RSL_CCHAN.send(ts_ASP_RSL_UD(ts_RSL_IMM_ASSIGN(ia_enc, 0)));
