diff --git a/bsc/BSC_Tests_ASCI.ttcn b/bsc/BSC_Tests_ASCI.ttcn
index 78b4902..a97e0db 100644
--- a/bsc/BSC_Tests_ASCI.ttcn
+++ b/bsc/BSC_Tests_ASCI.ttcn
@@ -146,9 +146,15 @@
 			log("VGCS: delay uplink req ack");
 			f_delay_msc();
 		}
-		log("VGCS: sending uplink req ack");
-		BSSAP.send(ts_BSSMAP_UplinkReqAck(omit));
-		if (g_pars.asci_test.vgcs_talker_req) {
+		if (g_pars.asci_test.vgcs_uplink_reject) {
+			log("VGCS: sending uplink rej cmd");
+			BSSAP.send(ts_BSSMAP_UplinkRejCmd(9));
+		} else {
+			log("VGCS: sending uplink req ack");
+			BSSAP.send(ts_BSSMAP_UplinkReqAck(omit));
+		}
+		if (g_pars.asci_test.vgcs_talker_req or
+		    g_pars.asci_test.vgcs_uplink_reject) {
 			T.start;
 		}
 		repeat;
@@ -327,6 +333,15 @@
 		setverdict(pass);
 		return;
 	}
+	if (g_pars.asci_test.vgcs_uplink_reject) {
+		if (not uplink_free) {
+			setverdict(fail, "VGCS: Uplink not free as expected!");
+			return;
+		}
+		log("VGCS: Uplink rejected and uplink marked free as expected!");
+		setverdict(pass);
+		return;
+	}
 }
 
 /*
@@ -402,7 +417,8 @@
 		if (g_pars.asci_test.vgcs_talker_req or
 		    g_pars.asci_test.vgcs_talker_fail or
 		    g_pars.asci_test.vgcs_talker_est or
-		    g_pars.asci_test.vgcs_talker_rel) {
+		    g_pars.asci_test.vgcs_talker_rel or
+		    g_pars.asci_test.vgcs_uplink_reject) {
 			log("VGCS: sending talker det");
 			RSL.send(ts_RSL_TALKER_DET(g_chan_nr));
 		}
@@ -706,6 +722,28 @@
 	f_shutdown_helper();
 }
 
+testcase TC_vgcs_vbs_uplink_reject() runs on test_CT {
+	var MSC_ConnHdlr call_conn, chan_conn;
+	var TestHdlrParams pars := f_gen_test_hdlr_pars();
+
+	f_init(1, true);
+
+	pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
+	pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
+
+	pars.asci_test.vgcs_uplink_reject := true;
+
+	call_conn := f_start_handler(refers(f_tc_vgcs_vbs_setup), pars);
+	chan_conn := f_start_handler(refers(f_tc_asci_assignment), pars);
+	/* Connect COORD ports of both functions. The functions will delay before using them. */
+	connect(call_conn:COORD, chan_conn:COORD);
+
+	call_conn.done;
+	chan_conn.done;
+
+	f_shutdown_helper();
+}
+
 testcase TC_vgcs_vbs_uplink_seized() runs on test_CT {
 	var MSC_ConnHdlr call_conn, chan_conn;
 	var TestHdlrParams pars := f_gen_test_hdlr_pars();
@@ -761,6 +799,7 @@
 	execute( TC_vgcs_vbs_talker_est_late_msc() );
 	execute( TC_vgcs_vbs_talker_rel() );
 	execute( TC_vgcs_vbs_talker_rel_late_msc() );
+	execute( TC_vgcs_vbs_uplink_reject() );
 	execute( TC_vgcs_vbs_uplink_seized() );
 	execute( TC_vgcs_vbs_uplink_release() );
 }
