diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index a15fa57..ca633dc 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -3854,6 +3854,33 @@
 	vc_conn.done;
 }
 
+private function f_tc_sgsap_impl_imsi_det_noneps(charstring id, BSC_ConnHdlrPars pars)
+runs on BSC_ConnHdlr {
+	f_init_handler(pars);
+	f_sgs_perform_lu();
+	f_sleep(3.0);
+
+	var octetstring mme_name := f_enc_dns_hostname(mp_mme_name);
+	SGsAP.send(ts_SGsAP_IMSI_DETACH_IND(g_pars.imsi, mme_name, implicit_network_initiated));
+	SGsAP.receive(tr_SGsAP_IMSI_DETACH_ACK(g_pars.imsi));
+
+	if (f_ctrl_subscr_in_vlr(hex2str(g_pars.imsi))) {
+		setverdict(fail, "subscriber not removed from VLR");
+	}
+
+	f_sgsap_bssmap_screening();
+
+	setverdict(pass);
+}
+testcase TC_sgsap_impl_imsi_det_noneps() runs on MTC_CT {
+	var BSC_ConnHdlrPars pars;
+	var BSC_ConnHdlr vc_conn;
+	f_init(1, true);
+	pars := f_init_pars(11815, true);
+	vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_impl_imsi_det_noneps), pars);
+	vc_conn.done;
+}
+
 /* Trigger a paging request via VTY and send a paging reject in response */
 private function f_tc_sgsap_paging_rej(charstring id, BSC_ConnHdlrPars pars)
 runs on BSC_ConnHdlr {
@@ -4649,6 +4676,7 @@
 	execute( TC_sgsap_lu_and_nothing() );
 	execute( TC_sgsap_expl_imsi_det_eps() );
 	execute( TC_sgsap_expl_imsi_det_noneps() );
+	execute( TC_sgsap_impl_imsi_det_noneps() );
 	execute( TC_sgsap_paging_rej() );
 	execute( TC_sgsap_paging_subscr_rej() );
 	execute( TC_sgsap_paging_ue_unr() );
