diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 4c0a8ab..4e35144 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -765,12 +765,12 @@
 	}
 }
 
-function f_process_attach_accept(PDU_GMM_AttachAccept aa) runs on BSSGP_ConnHdlr {
+function f_process_attach_accept(PDU_GMM_AttachAccept aa, integer ran_index := 0) runs on BSSGP_ConnHdlr {
 	/* mandatory IE */
 	var hexstring aa_plmn := f_RAI_to_plmn_hexstr(aa.routingAreaIdentification);
-	if (not (g_pars.bssgp_cell_id[0].ra_id.lai.mcc_mnc == aa_plmn)) {
+	if (not (g_pars.bssgp_cell_id[ran_index].ra_id.lai.mcc_mnc == aa_plmn)) {
 		  setverdict(fail, "mismatching PLMN in Attach Accept: " & hex2str(aa_plmn)
-				   & "; expected " & hex2str(g_pars.bssgp_cell_id[0].ra_id.lai.mcc_mnc));
+				   & "; expected " & hex2str(g_pars.bssgp_cell_id[ran_index].ra_id.lai.mcc_mnc));
 		  mtc.stop;
 	}
 	g_pars.ra := aa.routingAreaIdentification;
@@ -779,7 +779,8 @@
 			setverdict(fail, "unexpected P-TMSI allocation");
 			mtc.stop;
 		}
-		f_upd_ptmsi_and_tlli(aa.allocatedPTMSI.mobileIdentityLV.mobileIdentityV.oddEvenInd_identity.tmsi_ptmsi.octets);
+		f_upd_ptmsi_and_tlli(aa.allocatedPTMSI.mobileIdentityLV.mobileIdentityV.oddEvenInd_identity.tmsi_ptmsi.octets,
+				     ran_index);
 	}
 	if (ispresent(aa.msIdentity)) {
 		setverdict(fail, "unexpected TMSI allocation in non-combined attach");
@@ -802,7 +803,8 @@
 			setverdict(fail, "unexpected P-TMSI allocation");
 			mtc.stop;
 		}
-		f_upd_ptmsi_and_tlli(ra.allocatedPTMSI.mobileIdentityLV.mobileIdentityV.oddEvenInd_identity.tmsi_ptmsi.octets, ran_index);
+		f_upd_ptmsi_and_tlli(ra.allocatedPTMSI.mobileIdentityLV.mobileIdentityV.oddEvenInd_identity.tmsi_ptmsi.octets,
+				     ran_index);
 	}
 	if (ispresent(ra.msIdentity)) {
 		setverdict(fail, "unexpected TMSI allocation in non-combined attach");
@@ -860,7 +862,7 @@
 	f_gmm_gsup_lu_isd();
 
 	l3_mt := f_receive_l3(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?), ran_index);
-	f_process_attach_accept(l3_mt.msgs.gprs_mm.attachAccept);
+	f_process_attach_accept(l3_mt.msgs.gprs_mm.attachAccept, ran_index);
 
 	/* FIXME: Extract P-TMSI, if any. Only send Complete if necessary */
 	f_send_l3(ts_GMM_ATTACH_COMPL, ran_index);
