diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index dcf72b0..c496ca8 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -3228,6 +3228,52 @@
 	f_cleanup();
 }
 
+
+/* Test RIM REQ sent from an MME->SGSN->GBPROXY->PCU and back (eNACC) */
+private function f_TC_rim_from_eutran(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0)
+runs on GlobalTest_CT
+{
+	var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id;
+	var template (value) RAN_Information_Request_RIM_Container cont_tx;
+	var template RAN_Information_Request_RIM_Container cont_rx;
+	var template RIM_Routing_Address ra_pcu;
+	var template RIM_Routing_Address ra_sgsn;
+
+	ra_pcu := t_RIM_Routing_Address_cid(cell_id);
+	ra_sgsn := t_RIM_Routing_Address_enbid(cell_id_sgsn, tac := 3, gnbid := '12345678123456'O);
+
+	cont_tx := ts_RAN_Information_Request_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_Request_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_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						  src := ts_RIM_Routing_Information(RIM_ADDR_EUTRAN_NODEB_ID, ra_sgsn),
+						  cont := cont_tx),
+			tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						  src := tr_RIM_Routing_Information(RIM_ADDR_EUTRAN_NODEB_ID, ra_sgsn),
+						  cont := cont_rx),
+			sgsn_idx, pcu_idx);
+
+
+	f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_EUTRAN_NODEB_ID, ra_sgsn),
+						  src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						  cont := cont_tx),
+		       tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_EUTRAN_NODEB_ID, ra_sgsn),
+						  src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						  cont := cont_rx),
+		       pcu_idx);
+}
+testcase TC_rim_from_eutran() runs on GlobalTest_CT
+{
+	f_init();
+	f_global_init();
+	f_rim_iterator(refers(f_TC_rim_from_eutran));
+	f_cleanup();
+}
+
 /***********************************************************************
  * STATUS handling
  ***********************************************************************/
@@ -3488,6 +3534,7 @@
 	execute( TC_rim_info_error() );
 	execute( TC_rim_info_app_error() );
 	execute( TC_rim_info_pcu2pcu() );
+	execute( TC_rim_from_eutran() );
 
 
 	execute( TC_flush_ll() );
