diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index f843839..05d6b4f 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -51,6 +51,10 @@
 import from SMPP_Templates all;
 import from SMPP_Emulation all;
 
+import from SS_Types all;
+import from SS_Templates all;
+import from USSD_Helpers all;
+
 const integer NUM_BSC := 2;
 type record of BSSAP_Configuration BSSAP_Configurations;
 
@@ -2101,6 +2105,64 @@
 	vc_conn.done;
 }
 
+/***********************************************************************
+ * USSD Testing
+ ***********************************************************************/
+
+private function f_tc_lu_and_ussd_single_req(charstring id, BSC_ConnHdlrPars pars)
+runs on BSC_ConnHdlr {
+	f_init_handler(pars);
+
+	/* Perform location update */
+	f_perform_lu();
+
+	/* Send CM Service Request for SS/USSD */
+	f_establish_fully(EST_TYPE_SS_ACT);
+
+	/* Compose a new SS/REGISTER message with request */
+	var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER(
+		tid := 1, /* We just need a single transaction */
+		ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */
+		facility := f_USSD_FACILITY_IE_INVOKE(
+			invoke_id := 5, /* Phone may not start from 0 or 1 */
+			op_code := SS_OP_CODE_PROCESS_USS_REQ,
+			ussd_string := "*#100#"
+		)
+	);
+
+	/* Compose SS/RELEASE_COMPLETE template with expected response */
+	var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE(
+		tid := 1, /* Response should arrive within the same transaction */
+		ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */
+		facility := f_USSD_FACILITY_IE_RETURN_RESULT(
+			invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */
+			op_code := SS_OP_CODE_PROCESS_USS_REQ,
+			ussd_string := "Your extension is " & hex2str(g_pars.msisdn) & "\r"
+		)
+	);
+
+	/* Request own number request */
+	BSSAP.send(ts_PDU_DTAP_MO(ussd_req));
+	alt {
+	/* We expect RELEASE_COMPLETE message with the response */
+	[] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) {
+		setverdict(pass);
+		}
+	[] BSSAP.receive {
+		setverdict(fail, "Unknown/unexpected BSSAP received");
+		self.stop;
+		}
+	}
+
+	f_expect_clear();
+}
+testcase TC_lu_and_ussd_single_req() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+	f_init();
+	vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_single_req), 46);
+	vc_conn.done;
+}
+
 /* TODO (SMS):
    * different user data lengths
    * SMPP transaction mode with unsuccessful delivery
@@ -2182,6 +2244,8 @@
 	execute( TC_smpp_mo_sms() );
 	execute( TC_smpp_mt_sms() );
 
+	execute( TC_lu_and_ussd_single_req() );
+
 	/* Run this last: at the time of writing this test crashes the MSC */
 	execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() );
 }
