diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index fa04190..487a799 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -1508,7 +1508,7 @@
 {
 	/* doesn't really make sense: Sending to a single BVCI means the message ends up
 	 * at that BVC (cell) only, and paging all over the BSS area is not possible */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, g_pars.sgsn_idx, false, 0);
 }
 testcase TC_paging_ps_ptp_bss() runs on test_CT {
 	f_init();
@@ -1522,7 +1522,7 @@
 	var template (present) PDU_BSSGP exp_rx;
 	/* doesn't really make sense: Sending to a single BVCI means the message ends up
 	 * at that BVC (cell) only, and paging all over the BSS area is not possible */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), g_pars.sgsn_idx, false, 0);
 }
 testcase TC_paging_ps_ptp_lac() runs on test_CT {
 	f_init();
@@ -1538,7 +1538,7 @@
 		lac := 33333
 	};
 	/* as it's sent on the PTP BVC, we expect it to pass even for unknown LAC */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), g_pars.sgsn_idx, false, 0);
 }
 testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT {
 	f_init();
@@ -1551,7 +1551,7 @@
 {
 	/* doesn't really make sense: Sending to a single BVCI means the message ends up
 	 * at that BVC (cell) only, and paging all over the BSS area is not possible */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), g_pars.sgsn_idx, false, 0);
 }
 testcase TC_paging_ps_ptp_rac() runs on test_CT {
 	f_init();
@@ -1570,7 +1570,7 @@
 		rac := 254
 	};
 	/* as it's sent on the PTP BVC, we expect it to pass even for unknown RAC */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), g_pars.sgsn_idx, false, 0);
 }
 testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT {
 	f_init();
@@ -1582,7 +1582,7 @@
 private function f_TC_paging_ps_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr
 {
 	/* this should be the normal case for MS in READY MM state after a lower layer failure */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, false, 0);
 }
 testcase TC_paging_ps_ptp_bvci() runs on test_CT {
 	f_init();
@@ -1609,7 +1609,7 @@
 private function f_TC_paging_ps_reject_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr
 {
 	/* first send the PS-PAGING from SGSN -> PCU */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, false, 0);
 	/* then simulate the PS-PAGING-REJECT from the PCU */
 	f_send_paging_ps_rej(use_sig:=false);
 }
@@ -1623,7 +1623,7 @@
 private function f_TC_paging_ps_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr
 {
 	/* as it's sent on the PTP BVC, we expect it to pass even for unknown BVCI */
-	f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0);
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), g_pars.sgsn_idx, false, 0);
 }
 testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT {
 	f_init();
@@ -1783,7 +1783,7 @@
 		mcc_mnc := '567F99'H,
 		lac := 33333
 	};
-	f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true);
+	f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), g_pars.sgsn_idx, true);
 }
 testcase TC_paging_ps_sig_lac_unknown() runs on test_CT {
 	f_init();
@@ -1820,7 +1820,7 @@
 		},
 		rac := 254
 	};
-	f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true);
+	f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), g_pars.sgsn_idx, true);
 }
 testcase TC_paging_ps_sig_rac_unknown() runs on test_CT {
 	f_init();
@@ -1871,7 +1871,7 @@
 /* PS-PAGING on SIG-BVC for unknown BVCI */
 private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr
 {
-	f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true);
+	f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), g_pars.sgsn_idx, true);
 }
 testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT {
 	f_init();
