diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index cc387f6..d64ccc0 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -5677,6 +5677,7 @@
 	var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(1, RSL_CHAN_NR_Bm_ACCH));
 	f_rslem_register(0, new_chan_nr);
 	g_chan_nr := new_chan_nr;
+	var uint3_t expect_target_tsc := BTS_TSC[0];
 	f_sleep(1.0);
 
 	f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
@@ -5696,8 +5697,10 @@
 
 	BSSAP.receive(tr_BSSMAP_HandoverRequestAcknowledge(?)) -> value rx_bssap;
 
-	/* we're sure that the channel activation is done now, verify the encryption parameters in it */
-	f_verify_encr_info(f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr));
+	/* we're sure that the channel activation is done now, verify the parameters in it */
+	var RSL_Message chan_act := f_rslem_get_last_act(RSL_PROC, 0, g_chan_nr);
+	f_verify_encr_info(chan_act);
+	f_chan_act_verify_tsc(chan_act, expect_target_tsc);
 
 	ho_command_str := rx_bssap.pdu.bssmap.handoverRequestAck.layer3Information.layer3info;
 	log("Received L3 Info in HO Request Ack: ", ho_command_str);
@@ -5717,6 +5720,15 @@
 	}
 	log("Handover Command chan_nr is", actual_new_chan_nr);
 
+	var uint3_t got_tsc := rr_chan_desc_tsc(ho_command.msgs.rrm.handoverCommand.channelDescription2);
+	if (not match(got_tsc, expect_target_tsc)) {
+		setverdict(fail, "RR Handover Command: unexpected TSC in Channel Description: expected ",
+			   expect_target_tsc, " got ", got_tsc);
+		mtc.stop;
+	} else {
+		log("handoverCommand: verified TSC = ", got_tsc);
+	}
+
 	/* Now the MSC forwards the RR Handover Command to the other BSC, which
 	 * tells the MS to handover to the new lchan. Here comes the new MS on
 	 * the new lchan with a Handover RACH: */
