diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 1a68014..0685e30 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -1280,6 +1280,53 @@
 }
 
 
+private function f_hlr_location_cancel_request_unknown_subscriber(
+		charstring id,
+		GSUP_CancelType canceltype) runs on BSSGP_ConnHdlr {
+
+	/* HLR: cancel the location request */
+	GSUP.send(ts_GSUP_CL_REQ(g_pars.imsi, canceltype));
+
+	/* cause 2 = IMSI_UNKNOWN */
+	GSUP.receive(tr_GSUP_CL_ERR(g_pars.imsi, 2));
+
+	setverdict(pass);
+}
+
+private function f_TC_hlr_location_cancel_request_unknown_subscriber_withdraw(charstring id) runs on BSSGP_ConnHdlr {
+        f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW);
+}
+
+testcase TC_hlr_location_cancel_request_unknown_subscriber_withdraw() runs on test_CT {
+	/* HLR -> SGSN: Cancel Location Request
+	 * HLR <- SGSN: Cancel Location Error
+	 */
+
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_TC_hlr_location_cancel_request_unknown_subscriber_withdraw), testcasename(), g_gb[0], 30);
+	vc_conn.done;
+}
+
+private function f_TC_hlr_location_cancel_request_unknown_subscriber_update(charstring id) runs on BSSGP_ConnHdlr {
+        f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW);
+}
+
+testcase TC_hlr_location_cancel_request_unknown_subscriber_update() runs on test_CT {
+	/* HLR -> SGSN: Cancel Location Request
+	 * HLR <- SGSN: Cancel Location Error
+	 */
+
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_TC_hlr_location_cancel_request_unknown_subscriber_update), testcasename(), g_gb[0], 30);
+	vc_conn.done;
+}
+
+
+
 control {
 	execute( TC_attach() );
 	execute( TC_attach_mnc3() );
@@ -1294,6 +1341,8 @@
 	execute( TC_attach_accept_all() );
 	execute( TC_attach_closed() );
 	execute( TC_hlr_location_cancel_request_withdraw(), 5.0 );
+	execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 5.0 );
+	execute( TC_hlr_location_cancel_request_unknown_subscriber_update(), 5.0 );
 	execute( TC_rau_unknown() );
 	execute( TC_attach_rau() );
 	execute( TC_detach_unknown_nopoweroff() );
