diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index be4283e..084f167 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -493,16 +493,16 @@
 	return gb_idx >= NUM_GB;
 }
 
-function f_send_llc(template (value) PDU_LLC llc_pdu, integer gb_index := 0) runs on BSSGP_ConnHdlr {
+function f_send_llc(template (value) PDU_LLC llc_pdu, integer ran_index := 0) runs on BSSGP_ConnHdlr {
 	var octetstring llc_enc := enc_PDU_LLC(valueof(llc_pdu));
-	BSSGP[gb_index].send(ts_BSSGP_UL_UD(g_pars.tlli, g_pars.bssgp_cell_id[gb_index], llc_enc));
+	BSSGP[ran_index].send(ts_BSSGP_UL_UD(g_pars.tlli, g_pars.bssgp_cell_id[ran_index], llc_enc));
 }
 
-private function f_send_l3_gmm_llc(template (value) PDU_L3_MS_SGSN l3_mo, integer gb_index := 0) runs on BSSGP_ConnHdlr {
+private function f_send_l3_gmm_llc(template (value) PDU_L3_MS_SGSN l3_mo, integer ran_index := 0) runs on BSSGP_ConnHdlr {
 	var octetstring l3_enc := enc_PDU_L3_MS_SGSN(valueof(l3_mo));
 	var BIT4 sapi := f_llc_sapi_by_l3_mo(valueof(l3_mo));
 	var integer n_u := f_llc_get_n_u_tx(llc[bit2int(sapi)]);
-	f_send_llc(ts_LLC_UI(l3_enc, sapi, '0'B, n_u), gb_index);
+	f_send_llc(ts_LLC_UI(l3_enc, sapi, '0'B, n_u), ran_index);
 }
 
 /* trigger sending of a RANAP InitialUE and wait for SCCP connection confirmation */
@@ -539,8 +539,8 @@
 }
 
 /* send a L3 (GMM/SM) message over whatever is the appropriate lower-layer bearer */
-function f_send_l3(template (value) PDU_L3_MS_SGSN l3_mo, integer gb_index := 0) runs on BSSGP_ConnHdlr {
-	if (is_iu(gb_index)) {
+function f_send_l3(template (value) PDU_L3_MS_SGSN l3_mo, integer ran_index := 0) runs on BSSGP_ConnHdlr {
+	if (is_iu(ran_index)) {
 		if (g_pars.rnc_send_initial_ue) {
 			g_pars.rnc_send_initial_ue := false;
 			f_send_l3_initial_ue(l3_mo);
@@ -548,7 +548,7 @@
 			BSSAP.send(ts_PDU_DTAP_PS_MO(l3_mo));
 		}
 	} else {
-		f_send_l3_gmm_llc(l3_mo, gb_index);
+		f_send_l3_gmm_llc(l3_mo, ran_index);
 	}
 }
 
