diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
index 22c560470849bb1a392bfebfa2c640b9ef6db9e5..72b106d1c01abd207209921b19979c6b773066a5 100644
--- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
+++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c
@@ -617,7 +617,7 @@ rlc_am_send_status_pdu(
       	}
 
     	  /* First ensure there is enough TBS for at least 1 SOStart/SOEnd, else break */
-    	  if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) {
+        else if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) {
     		  /* Init loop flags */
               /* Check lsf */
     		  segment_loop_end = (pdu_info_cursor_p->lsf == 1);
diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
index 0718cdd93c2ddc8029da3ae78a154ce06425f450..b1c455aee0e30a1676729737c18ad15ad84bfe79 100644
--- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
+++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c
@@ -571,6 +571,8 @@ rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP,cons
       //AssertFatal( tb_size_in_bytes > 0 , "RLC UM PDU LENGTH %d", tb_size_in_bytes);
       if(tb_size_in_bytes <= 0) {
         LOG_E(RLC, "RLC UM PDU LENGTH %d\n", tb_size_in_bytes);
+        tb_p = tb_p->next;
+        continue;
       }
         
 #if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR