diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index d59ac11..a63ca1d 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -68,9 +68,9 @@
 		ns_component := NS_CT.create;
 		bssgp_component := BSSGP_CT.create;
 		/* connect our BSSGP port to the BSSGP Emulation */
-		connect(self:BSSGP, bssgp_component:BSSGP_SP);
-		connect(self:BSSGP_SIG, bssgp_component:BSSGP_SP_SIG);
-		connect(self:BSSGP_PROC, bssgp_component:BSSGP_PROC);
+		connect(self:BSSGP[0], bssgp_component:BSSGP_SP);
+		connect(self:BSSGP_SIG[0], bssgp_component:BSSGP_SP_SIG);
+		connect(self:BSSGP_PROC[0], bssgp_component:BSSGP_PROC);
 		/* connect lower-end of BSSGP with BSSGP_CODEC_PORT (maps to NS_PT*/
 		connect(bssgp_component:BSCP, ns_component:NS_SP);
 		/* connect lower-end of NS emulation to NS_CODEC_PORT (on top of IPl4) */
@@ -186,7 +186,7 @@
 
 		log(ts_BSSGP_DL_UD(g_mmctx.tlli, enc_PDU_LLC(llc)));
 
-		BSSGP.send(ts_BSSGP_DL_UD(g_mmctx.tlli, enc_PDU_LLC(llc)));
+		BSSGP[0].send(ts_BSSGP_DL_UD(g_mmctx.tlli, enc_PDU_LLC(llc)));
 	}
 
 	/* Establish BSSGP connection to PCU */
@@ -196,8 +196,8 @@
 		f_init();
 		T.start
 		alt {
-			[] BSSGP.receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { }
-			[] BSSGP.receive { repeat; }
+			[] BSSGP[0].receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { }
+			[] BSSGP[0].receive { repeat; }
 			[] T.timeout {
 				setverdict(fail, "Timeout establishing BSSGP connection");
 				mtc.stop;
@@ -215,17 +215,17 @@
 		f_init();
 
 		/* Send paging on signalling BVCI 0 since osmo-pcu does not support paging on PTP yet. */
-		BSSGP_SIG.send(ts_BSSGP_PS_PAGING_IMSI(0, g_mmctx.imsi));
-		BSSGP_SIG.send(ts_BSSGP_PS_PAGING_PTMSI(0, g_mmctx.imsi, tmsi));
+		BSSGP_SIG[0].send(ts_BSSGP_PS_PAGING_IMSI(0, g_mmctx.imsi));
+		BSSGP_SIG[0].send(ts_BSSGP_PS_PAGING_PTMSI(0, g_mmctx.imsi, tmsi));
 
 		while (true) {
 			var BssgpDecoded bd;
 			alt {
-				[] BSSGP.receive(tr_BD_L3_MT(?)) -> value bd {
+				[] BSSGP[0].receive(tr_BD_L3_MT(?)) -> value bd {
 					log("BSSGP Rx: ", bd);
 				}
-				[] BSSGP.receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; }
-				[] BSSGP.receive { repeat; }
+				[] BSSGP[0].receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; }
+				[] BSSGP[0].receive { repeat; }
 			}
 		}
 	}
@@ -283,7 +283,7 @@
 	timer T := 5.0;
 	T.start;
 	alt {
-	[] BSSGP.receive(bd_exp) {
+	[] BSSGP[0].receive(bd_exp) {
 		log("found matching BSSGP UL-UNITDATA PDU");
 		}
 	[] T.timeout {
@@ -355,14 +355,14 @@
 		while (true) {
 			var BssgpDecoded bd;
 			alt {
-				[] BSSGP.receive(tr_BD_BSSGP(?)) -> value bd {
+				[] BSSGP[0].receive(tr_BD_BSSGP(?)) -> value bd {
 					log("BSSGP Rx: ", bd);
 					//log("GMM Rx: ", dec_PDU_L3_MS_SGSN(pdu.payload));
 					g_mmctx.tlli := bd.bssgp.pDU_BSSGP_UL_UNITDATA.tLLI;
 					tx_gmm(LLC_CR_DL_CMD, gmm_auth_req);
 				}
-				[] BSSGP.receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; }
-				[] BSSGP.receive { repeat; }
+				[] BSSGP[0].receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; }
+				[] BSSGP[0].receive { repeat; }
 			}
 		}
 	}
