diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 938dcc1..b708fa0 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -1905,6 +1905,35 @@
 	f_cleanup();
 }
 
+/* Send an OVERLOAD from SGSN side and expect it to show up on each PCU (SIG BVC) */
+testcase TC_overload() runs on GlobalTest_CT
+{
+	f_init();
+	f_global_init();
+
+	var template (value) PDU_BSSGP pdu_tx := ts_OVERLOAD('1'B);
+	var template (present) PDU_BSSGP exp_rx := tr_OVERLOAD('1'B);
+
+	var ro_default defaults := {};
+	for (var integer i := 0; i < lengthof(g_pcu); i := i+1) {
+		activate(as_bssgp_g_pcu_count(i, exp_rx, g_roi));
+	}
+	G_SGSN[0].send(pdu_tx);
+	f_sleep(2.0);
+	for (var integer i := 0; i < lengthof(defaults); i := i+1) {
+		deactivate(defaults[i]);
+	}
+
+	for (var integer i := 0; i < lengthof(g_pcu); i := i+1) {
+		if (not ro_integer_contains(g_roi, i)) {
+			setverdict(fail, "Failed to receive OVERLOAD on PCU index ", i);
+		}
+	}
+	setverdict(pass);
+
+	f_cleanup();
+}
+
 private function f_block_ptp_bvc_from_pcu(integer pcu_idx, integer bvc_idx) runs on test_CT
 {
 	var BSSGP_BVC_CT bvc_ct := g_pcu[pcu_idx].vc_BSSGP_BVC[bvc_idx];
@@ -2138,6 +2167,7 @@
 	execute( TC_resume() );
 	execute( TC_trace() );
 	execute( TC_llc_discarded() );
+	execute( TC_overload() );
 	execute( TC_bvc_block_ptp() );
 	execute( TC_bvc_unblock_ptp() );
 	execute( TC_bvc_reset_ptp_from_bss() );
