diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 0f3b4cb..af9646c 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -3122,22 +3122,34 @@
 {
 	var BssgpCellId cell_id_src := g_pcu[src_pcu_idx].cfg.bvc[src_bvc_idx].cell_id;
 	var BssgpCellId cell_id_dst := g_pcu[dst_pcu_idx].cfg.bvc[dst_bvc_idx].cell_id;
-	var template (value) RIM_Routing_Information ri_pcu_src;
-	var template (value) RIM_Routing_Information ri_pcu_dst;
-	var template (value) RAN_Information_RIM_Container cont;
+	var template (value) RIM_Routing_Information ri_pcu_src_tx;
+	var template (value) RIM_Routing_Information ri_pcu_dst_tx;
+	var template RIM_Routing_Information ri_pcu_src_rx;
+	var template RIM_Routing_Information ri_pcu_dst_rx;
+	var template (value) RAN_Information_RIM_Container cont_tx;
+	var template RAN_Information_RIM_Container cont_rx;
 
 	log("Testing RIM PCU2PCU from PCU[", src_pcu_idx, "][", src_bvc_idx, "] to PCU[",
 	    dst_pcu_idx, "][", dst_bvc_idx, "]");
 
-	ri_pcu_src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID,
+	ri_pcu_src_tx := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID,
 						 t_RIM_Routing_Address_cid(cell_id_src));
-	ri_pcu_dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID,
+	ri_pcu_dst_tx := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID,
 						 t_RIM_Routing_Address_cid(cell_id_dst));
-	cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
-						 ts_RIM_Sequence_Number(0),
-						 ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
-	f_rim_pcu2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst, src := ri_pcu_src, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst, src := ri_pcu_src, cont := cont),
+	ri_pcu_src_rx := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID,
+						 t_RIM_Routing_Address_cid(cell_id_src));
+	ri_pcu_dst_rx := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID,
+						 t_RIM_Routing_Address_cid(cell_id_dst));
+
+	cont_tx := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
+						    ts_RIM_Sequence_Number(0),
+						    ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
+	cont_rx := tr_RAN_Information_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC),
+						    tr_RIM_Sequence_Number(0),
+						    tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
+
+	f_rim_pcu2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst_tx, src := ri_pcu_src_tx, cont := cont_tx),
+			tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst_rx, src := ri_pcu_src_rx, cont := cont_rx),
 			src_pcu_idx, dst_pcu_idx);
 }
 testcase TC_rim_info_pcu2pcu() runs on GlobalTest_CT
