diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 43c6287..ee4ea05 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -673,6 +673,43 @@
 }
 
 
+/* Send CM SERVICE REQ for TMSI that has never performed LU before */
+friend function f_tc_cmserv_tmsi_unknown(charstring id, BSC_ConnHdlrPars pars)
+runs on BSC_ConnHdlr {
+	f_init_handler(pars);
+
+	var MobileIdentityLV mi := valueof(ts_MI_TMSI_LV('57111111'O));
+	var BSSMAP_IE_CellIdentifier cell_id := valueof(ts_CellId_CGI('262'H, '42'H, 23, 42));
+	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi));
+
+	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
+	f_cl3_or_initial_ue(l3_info);
+	f_mm_auth();
+
+	timer T := 10.0;
+	T.start;
+	alt {
+	[] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
+	[] BSSAP.receive {
+		setverdict(fail, "Received unexpected BSSAP");
+		mtc.stop;
+		}
+	[] T.timeout {
+		setverdict(fail, "Timeout waiting for CM SERV REJ");
+		mtc.stop;
+		}
+	}
+
+	f_expect_clear();
+}
+testcase TC_cmserv_tmsi_unknown() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+	f_init();
+	vc_conn := f_start_handler(refers(f_tc_cmserv_tmsi_unknown), 57, verify_cell_id := false);
+	vc_conn.done;
+}
+
+
 friend function f_tc_lu_and_mo_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
 	f_init_handler(pars);
 	var CallParameters cpars := valueof(t_CallParams);
@@ -6159,6 +6196,7 @@
 	execute( TC_lu_imsi_auth3g_tmsi() );
 	execute( TC_lu_imsi_timeout_tmsi_realloc() );
 	execute( TC_cmserv_imsi_unknown() );
+	execute( TC_cmserv_tmsi_unknown() );
 	execute( TC_lu_and_mo_call() );
 	execute( TC_lu_and_mo_call_sccp_tiar_timeout() );
 	execute( TC_lu_auth_sai_timeout() );
