diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 0844955..878083e 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1849,7 +1849,7 @@
 	return dt;
 }
 
-private function f_tc_assignment_csd(charstring data_rate_str, OCT1 data_rate) runs on MSC_ConnHdlr {
+private function f_tc_assignment_csd(charstring data_rate_str, OCT1 data_rate, boolean transp := true) runs on MSC_ConnHdlr {
 	var template PDU_BSSAP exp_compl := f_gen_exp_compl();
 	var PDU_BSSAP ass_cmd := f_gen_ass_req();
 	var SDP_FIELD_PayloadType pt_csd := PT_CSD;
@@ -1857,6 +1857,11 @@
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelTypeCSD);
 	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecCSData}));
 
+	/* Non-transparent service (3GPP TS 48.008 § 3.2.2.11, oct 5, bit 7) */
+	if (not transp) {
+		data_rate := data_rate or4b '40'O;
+	}
+
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType.speechId_DataIndicator := data_rate;
 
 	log("-----------------------------------------------");
@@ -1873,7 +1878,7 @@
 }
 private function f_tc_assignment_csd_all(charstring id) runs on MSC_ConnHdlr {
 	/* Data rates that require multi-slot HSCSD assignment are not tested
-	 * on purpuse (not supported): T_32k0, T_28k8 */
+	 * on purpose (not supported): T_32k0, T_28k8, NT_43k5, NT_29k0 */
 	f_tc_assignment_csd("T_14k4", GSM0808_DATA_RATE_TRANSP_14k4);
 	f_tc_assignment_csd("T_9k6", GSM0808_DATA_RATE_TRANSP_9k6);
 	f_tc_assignment_csd("T_4k8", GSM0808_DATA_RATE_TRANSP_4k8);
@@ -1881,6 +1886,11 @@
 	f_tc_assignment_csd("T_1k2", GSM0808_DATA_RATE_TRANSP_1k2);
 	f_tc_assignment_csd("T_600", GSM0808_DATA_RATE_TRANSP_600);
 	f_tc_assignment_csd("T_1200_75", GSM0808_DATA_RATE_TRANSP_1200_75);
+
+	f_tc_assignment_csd("NT_12000_6000", GSM0808_DATA_RATE_NON_TRANSP_12000_6000, false);
+	f_tc_assignment_csd("NT_14k5", GSM0808_DATA_RATE_NON_TRANSP_14k5, false);
+	f_tc_assignment_csd("NT_12k0", GSM0808_DATA_RATE_NON_TRANSP_12k0, false);
+	f_tc_assignment_csd("NT_6k0", GSM0808_DATA_RATE_NON_TRANSP_6k0, false);
 }
 testcase TC_assignment_csd() runs on test_CT {
 	if (Misc_Helpers.f_osmo_repo_is("nightly")) { /* osmo-bsc > 1.10.0 */
@@ -1888,7 +1898,7 @@
 		var TestHdlrParams pars := f_gen_test_hdlr_pars();
 		pars.encr := valueof(t_EncrParams('01'O, f_rnd_octstring(8)));
 
-		f_init(1, true, guard_timeout := 90.0);
+		f_init(1, true, guard_timeout := 120.0);
 		f_sleep(1.0);
 		vc_conn := f_start_handler(refers(f_tc_assignment_csd_all), pars);
 		vc_conn.done;
