diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h
index 0338cd8c3c9a02a9d9593c8cb2c7c7aaf19fd8ff..52d40355a9914d3ce1e9e177f456abc4f1a27068 100644
--- a/openair2/LAYER2/MAC/defs.h
+++ b/openair2/LAYER2/MAC/defs.h
@@ -78,7 +78,7 @@
 #define PCCH_PAYLOAD_SIZE_MAX 128
 #define RAR_PAYLOAD_SIZE_MAX 128
 
-#define SCH_PAYLOAD_SIZE_MAX 4096
+#define SCH_PAYLOAD_SIZE_MAX 8192
 /// Logical channel ids from 36-311 (Note BCCH is not specified in 36-311, uses the same as first DRB)
 
 #if defined(Rel10) || defined(Rel14)
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index 91a6c18fa98d5d68cdb7ba48bc864efa23d775e2..dfd2e6950668759d0da364c5b927c07afe8baa23 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -73,7 +73,7 @@ extern uint8_t nfapi_mode;
 // This table holds the allowable PRB sizes for ULSCH transmissions
 uint8_t rb_table[34] =
     { 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32,
-    36, 40, 45, 48, 50, 54, 60, 64, 72, 75, 80, 81, 90, 96, 100
+    36, 40, 45, 48, 50, 54, 60, 72, 75, 80, 81, 90, 96, 100, 100
 };
 extern mui_t    rrc_eNB_mui;
 
@@ -2031,12 +2031,10 @@ void schedule_ulsch_rnti(module_id_t   module_idP,
             // increment first rb for next UE allocation
             first_rb[CC_id]+=rb_table[rb_table_index];
             if(ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_FIRST) {
-              LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]);
+              LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]));
                 if(ulsch_ue_select[CC_id].list[ulsch_ue_num].ul_total_buffer > 0){
-                    LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n",
-                               module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]);
-                    if (UE_template->ul_total_buffer > UE_template->TBS_UL[harq_pid])
-                      UE_template->ul_total_buffer -= UE_template->TBS_UL[harq_pid];
+                    if (UE_template->ul_total_buffer > get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]))
+                      UE_template->ul_total_buffer -= get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]);
                     else
                       UE_template->ul_total_buffer = 0;
                     LOG_D(MAC,"ul_total_buffer, new %d\n", UE_template->ul_total_buffer);
diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c
index 5211ff6f536f2d38552076ead90b11b9c5017f99..7676411882312a77cc623fe8684e7c3d8586c203 100644
--- a/targets/RT/USER/lte-ru.c
+++ b/targets/RT/USER/lte-ru.c
@@ -1814,7 +1814,7 @@ static void* eNB_thread_phy_tx( void* param ) {
           AssertFatal(pthread_cond_signal(&ru->proc.cond_rf_tx) == 0, "ERROR pthread_cond_signal for rf_tx thread\n");
         }else{
           LOG_E(PHY,"rf tx thread busy, skipping\n");
-          ru->proc.instance_cnt_rf_tx++;
+          late_control=STATE_BURST_TERMINATE;
         }
         pthread_mutex_unlock( &ru->proc.mutex_rf_tx );
     }