diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c b/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
index 09f29ebe6784a7b190cd5147ffe533be29d660b3..4ef952667dc84be0c6de1b219c5cf5f37833558e 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_entity_um.c
@@ -588,9 +588,10 @@ static void check_t_reassembly(nr_rlc_entity_um_t *entity)
   cur = entity->rx_list;
   while (cur != NULL &&
          sn_compare_rx(entity, cur->sn, entity->rx_next_reassembly) < 0) {
-    nr_rlc_free_pdu(cur);
+    nr_rlc_pdu_t *p = cur;
     cur = cur->next;
     entity->rx_list = cur;
+    nr_rlc_free_pdu(p);
   }
 
   if (sn_compare_rx(entity, entity->rx_next_highest,