diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c
index 06b0016140f381fbc1528a0b494609c31c5bbb47..26f25cec6c1873e14c68f9575b95667af3073070 100644
--- a/openair1/PHY/INIT/nr_init.c
+++ b/openair1/PHY/INIT/nr_init.c
@@ -758,13 +758,14 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB)
   }
   free_and_zero(pusch_dmrs);
 
-  uint32_t ***csi_rs = gNB->nr_csi_rs_info->nr_gold_csi_rs;
+  uint32_t ***nr_gold_csi_rs = gNB->nr_csi_rs_info->nr_gold_csi_rs;
   for (int slot = 0; slot < fp->slots_per_frame; slot++) {
     for (int symb = 0; symb < fp->symbols_per_slot; symb++)
-      free_and_zero(csi_rs[slot][symb]);
-    free_and_zero(csi_rs[slot]);
+      free_and_zero(nr_gold_csi_rs[slot][symb]);
+    free_and_zero(nr_gold_csi_rs[slot]);
   }
-  free_and_zero(csi_rs);
+  free_and_zero(nr_gold_csi_rs);
+  free_and_zero(gNB->nr_csi_rs_info);
 
   for (int id = 0; id < NUMBER_OF_NR_SRS_MAX; id++) {
     for (int i = 0; i < Prx; i++){