diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 4b7d246..f0175c2 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -1177,16 +1177,15 @@
 		var octetstring payload := f_rnd_octstring(i);
 		var template (value) PDU_BSSGP pdu_tx :=
 			ts_BSSGP_DL_UD(g_pars.tlli, payload, omit, ts_BSSGP_IMSI(g_pars.imsi));
-		SGSN_PTP[0].send(pdu_tx);
+		SGSN_PTP[g_pars.sgsn_idx].send(pdu_tx);
 	}
 	setverdict(pass);
 }
-testcase TC_load_sharing_dl() runs on test_CT_NS
+
+private function f_TC_load_sharing_dl(integer sgsn_idx) runs on test_CT_NS
 {
 	const integer num_ue := 10;
 	var BSSGP_ConnHdlr vc_conn[num_ue];
-	f_init();
-
 	/* all BVC are now fully brought up.  We disconnect BSSGP from NS on the BSS
 	 * side so we get the raw NsUnitdataIndication and hence observe different
 	 * NSVCI */
@@ -1199,7 +1198,8 @@
 
 	/* start parallel components generating DL-UNITDATA from the SGSN side */
 	for (var integer i:= 0; i < num_ue; i := i+1) {
-		vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, 5+i);
+		vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn,
+						5+i, 30.0, sgsn_idx);
 	}
 
 	/* now start counting all the messages that were queued before */
@@ -1227,6 +1227,15 @@
 			setverdict(fail, "Data not shared over all NSVC");
 		}
 	}
+}
+
+testcase TC_load_sharing_dl() runs on test_CT_NS
+{
+	var integer sgsn_idx, nri_idx;
+	f_init();
+	for (sgsn_idx:=0; sgsn_idx < NUM_SGSN; sgsn_idx:=sgsn_idx+1) {
+		f_TC_load_sharing_dl(sgsn_idx);
+	}
 	setverdict(pass);
 }
 private altstep as_NsUdiCount(integer nsvc_idx, inout ro_integer roi) runs on test_CT_NS {
