diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c
index 9b6ecae5930fbb64aacb3f02b964aae9c3d1abd0..bea680c48c0f8feaae63301bc581e3c3fac127a7 100644
--- a/openair2/ENB_APP/flexran_agent_ran_api.c
+++ b/openair2/ENB_APP/flexran_agent_ran_api.c
@@ -1487,6 +1487,7 @@ int flexran_remove_dl_slice(mid_t mod_id, int slice_idx)
   /* move last element to the position of the removed one */
   if (slice_idx != sli->n_dl)
     memcpy(&sli->dl[slice_idx], &sli->dl[sli->n_dl], sizeof(sli->dl[sli->n_dl]));
+  memset(&sli->dl[sli->n_dl], 0, sizeof(sli->dl[sli->n_dl]));
 
   /* all UEs that have been in the old slice are put into slice index 0 */
   int *assoc_list = RC.mac[mod_id]->UE_list.assoc_dl_slice_idx;
@@ -1763,6 +1764,7 @@ int flexran_remove_ul_slice(mid_t mod_id, int slice_idx)
   /* move last element to the position of the removed one */
   if (slice_idx != sli->n_ul)
     memcpy(&sli->ul[slice_idx], &sli->ul[sli->n_ul], sizeof(sli->ul[sli->n_ul]));
+  memset(&sli->ul[sli->n_ul], 0, sizeof(sli->ul[sli->n_ul]));
 
   /* all UEs that have been in the old slice are put into slice index 0 */
   int *assoc_list = RC.mac[mod_id]->UE_list.assoc_ul_slice_idx;
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index bc929b7534778a0e3603ba272aac6b15306c5c0d..c4c1cd1ca5ee379e7a5e53a0bd560b2004b7a39c 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -418,10 +418,6 @@ schedule_dlsch(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, in
   sli->avg_pct_dl = 1.0 / sli->n_dl;
   //sli->slice_counter = sli->n_dl;
 
-  // reset the slice percentage for inactive slices
-  for (i = sli->n_dl; i < MAX_NUM_SLICES; i++) {
-    sli->dl[i].pct = 0;
-  }
   for (i = 0; i < sli->n_dl; i++) {
     if (sli->dl[i].pct < 0) {
       LOG_W(MAC, "[eNB %d][SLICE %d][DL] frame %d subframe %d: invalid percentage %f. resetting to zero",
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index 684a74f0f7dc20915f78b7b69ea3edc05e3e2338..68cd5de8bdffbfe7395b9d1dae6a36a596b5f7d6 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -1043,10 +1043,6 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
   sli->tot_pct_ul = 0;
   sli->avg_pct_ul = 1.0 / sli->n_ul;
 
-  // reset the slice percentage for inactive slices
-  for (i = sli->n_ul; i< MAX_NUM_SLICES; i++) {
-    sli->ul[i].pct = 0;
-  }
   for (i = 0; i < sli->n_ul; i++) {
     if (sli->ul[i].pct < 0 ){
       LOG_W(MAC,