diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn
index 586642b..b6b0983 100644
--- a/msc/MSC_Tests_Iu.ttcn
+++ b/msc/MSC_Tests_Iu.ttcn
@@ -462,6 +462,45 @@
 	vc_conn.done;
 }
 
+/* Verify multiple concurrent MO SS/USSD transactions
+ * (one subscriber - one transaction) */
+testcase TC_iu_multi_lu_and_mo_ussd() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn[8];
+	var BSC_ConnHdlrPars pars;
+	var integer i;
+
+	f_init(3);
+
+	for (i := 0; i < sizeof(vc_conn); i := i + 1) {
+		pars := f_init_pars(1100 + i, ran_idx := 2, ran_is_geran := false);
+		vc_conn[i] := f_start_handler_with_pars(refers(f_tc_lu_and_mo_ussd_single_request), pars);
+	}
+
+	for (i := 0; i < sizeof(vc_conn); i := i + 1) {
+		vc_conn[i].done;
+	}
+}
+
+/* Verify multiple concurrent MT SS/USSD transactions
+ * (one subscriber - one transaction) */
+testcase TC_iu_multi_lu_and_mt_ussd() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn[8];
+	var BSC_ConnHdlrPars pars;
+	var integer i;
+
+	f_init(3);
+
+	for (i := 0; i < sizeof(vc_conn); i := i + 1) {
+		pars := f_init_pars(1110 + i, ran_idx := 2, ran_is_geran := false,
+				    gsup_sid := '200001'O & int2oct(i, 1));
+		vc_conn[i] := f_start_handler_with_pars(refers(f_tc_lu_and_mt_ussd_notification), pars);
+	}
+
+	for (i := 0; i < sizeof(vc_conn); i := i + 1) {
+		vc_conn[i].done;
+	}
+}
+
 testcase TC_iu_lu_with_invalid_mcc_mnc() runs on MTC_CT {
 	var BSC_ConnHdlr vc_conn;
 	f_init(3);
@@ -523,6 +562,9 @@
 	execute( TC_iu_proc_ss_paging_fail() );
 	execute( TC_iu_proc_ss_abort() );
 
+	execute( TC_iu_multi_lu_and_mo_ussd() );
+	execute( TC_iu_multi_lu_and_mt_ussd() );
+
 	execute( TC_iu_lu_with_invalid_mcc_mnc() );
 
 	/* TODO: Iu + SGsAP related tests, e.g. paging on IuCS */
