diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index e1e5088..9524afb 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -3614,6 +3614,40 @@
 	vc_conn.done;
 }
 
+/* Location Update with invalid (non-matching) MCC/MNC reported on BSSMAP level from BSC */
+friend function f_tc_lu_with_invalid_mcc_mnc(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+	f_init_handler(pars);
+
+	/* tell GSUP dispatcher to send this IMSI to us */
+	f_create_gsup_expect(hex2str(g_pars.imsi));
+
+	/* modify the cell ID which will be used to construct the COMPLELTE L3 or InitialUE */
+	g_pars.cell_id := valueof(ts_CellId_CGI('333'H, '22'H, 23, 42));
+
+	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
+	var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi)
+	f_cl3_or_initial_ue(l3_lu);
+
+	/* Expect LU reject from MSC. */
+	alt {
+	[] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) {
+		setverdict(pass);
+		}
+	[] BSSAP.receive {
+		setverdict(fail, "Unknown/unexpected BSSAP received");
+		mtc.stop;
+		}
+	}
+	f_expect_clear();
+}
+testcase TC_lu_with_invalid_mcc_mnc() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+	f_init();
+	vc_conn := f_start_handler(refers(f_tc_lu_with_invalid_mcc_mnc), 54);
+	vc_conn.done;
+}
+
+
 /* TODO (SMS):
    * different user data lengths
    * SMPP transaction mode with unsuccessful delivery
@@ -5282,6 +5316,7 @@
 	execute( TC_lu_and_ss_session_timeout() );
 
 	execute( TC_cipher_complete_with_invalid_cipher() );
+	execute( TC_lu_with_invalid_mcc_mnc() );
 
 	execute( TC_sgsap_reset() );
 	execute( TC_sgsap_lu() );
diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn
index 991c9b8..5798821 100644
--- a/msc/MSC_Tests_Iu.ttcn
+++ b/msc/MSC_Tests_Iu.ttcn
@@ -387,6 +387,13 @@
 	f_vty_config(MSCVTY, "msc", "ncss guard-timeout 0");
 }
 
+testcase TC_iu_lu_with_invalid_mcc_mnc() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+	f_init(3);
+	vc_conn := f_start_handler(refers(f_tc_lu_with_invalid_mcc_mnc), 1054, ran_idx := 2, ran_is_geran := false);
+	vc_conn.done;
+}
+
 control {
 	execute( TC_iu_lu_imsi_reject() );
 	execute( TC_iu_lu_imsi_timeout_gsup() );
@@ -430,6 +437,7 @@
 	execute( TC_iu_lu_and_mt_ussd_during_mt_call() );
 	execute( TC_iu_lu_and_mo_ussd_mo_release() );
 	execute( TC_iu_lu_and_ss_session_timeout() );
+	execute( TC_iu_lu_with_invalid_mcc_mnc() );
 
 	/* TODO: Iu + SGsAP related tests, e.g. paging on IuCS */
 
