diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index c212a7d0e3b2c2fabc550b81e112783c862f75b5..680f6356a9cf859eaf222da7bcf959c0b551706d 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -2597,7 +2597,7 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8
 	    phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->first_rb,
 	    phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->nb_rb,
 	    phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->mcs,
-        phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS,
+	    phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS,
 	    phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->rvidx,
 	    phy_vars_eNB->ulsch_eNB[i]->cyclicShift,
 	    phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->n_DMRS2,
@@ -2755,7 +2755,7 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8
 		phy_vars_eNB->ulsch_eNB[i]->o_ACK[0],
 		phy_vars_eNB->ulsch_eNB[i]->o_ACK[1]);
 	  	  
-	  LOG_I(PHY,"[eNB] Frame %d, Subframe %d : ULSCH SDU (RX harq_pid %d) %d bytes:",phy_vars_eNB->frame,last_slot>>1,
+	  LOG_I(PHY,"[eNB] Frame %d, Subframe %d : ULSCH SDU (RX harq_pid %d) %d bytes:\n",phy_vars_eNB->frame,last_slot>>1,
 		harq_pid,phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3);
 	  for (j=0;j<phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3;j++)
 	    LOG_T(PHY,"%x.",phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->c[0][j]);
@@ -2773,7 +2773,8 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8
 	    phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->phich_active=0;
 	    phy_vars_eNB->eNB_UE_stats[i].ulsch_errors[harq_pid]++;
 	    phy_vars_eNB->eNB_UE_stats[i].ulsch_consecutive_errors[harq_pid]++;
-	    mac_xface->macphy_exit("");
+	    //dump_ulsch(phy_vars_eNB, last_slot>>1, i);
+	    //mac_xface->macphy_exit("");
 	  }
 	
 	  // If we've dropped the UE, go back to PRACH mode for this UE
diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c
index 12c61509d903ee7c16bce4d174bf5eef2f32bae3..00950fd7bf319e54d805efc8ea03716310b2a8ef 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler.c
@@ -2121,7 +2121,10 @@ void schedule_ulsch_rnti(u8 Mod_id, unsigned char cooperation_flag, u32 frame, u
 	  mcs = openair_daq_vars.target_ue_ul_mcs;
 	}
 	else { // increment RV
-	  mcs = (round&3) + 28; 
+	  if ((round&3)==0)
+	    mcs = openair_daq_vars.target_ue_ul_mcs; // same as inital transmission
+	  else
+	    mcs = (round&3) + 28; //not correct for round==4! 
 	}
 
 	LOG_D(MAC,"[eNB %d] ULSCH scheduler: Ndi %d, mcs %d\n",Mod_id,ndi,mcs);
@@ -2170,10 +2173,11 @@ void schedule_ulsch_rnti(u8 Mod_id, unsigned char cooperation_flag, u32 frame, u
 	  }
 	  //rb_table_index = 8;
 	  
-	  LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d)\n",
+	  LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)\n",
 		Mod_id,UE_id,rnti,frame,subframe,mcs,
 		*first_rb,rb_table[rb_table_index],
-		rb_table_index,mac_xface->get_TBS_UL(mcs,rb_table[rb_table_index]));
+		rb_table_index,mac_xface->get_TBS_UL(mcs,rb_table[rb_table_index]), 
+		harq_pid);
 	  
 	  rballoc = mac_xface->computeRIV(mac_xface->lte_frame_parms->N_RB_UL,
 					  *first_rb,
@@ -2225,10 +2229,11 @@ void schedule_ulsch_rnti(u8 Mod_id, unsigned char cooperation_flag, u32 frame, u
 
 	} // ndi==1 
 	else { //we schedule a retransmission
-	  LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, TBS %d)\n",
+	  LOG_I(MAC,"[eNB %d][PUSCH %d/%x] Frame %d subframe %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, TBS %d, harq_pid %d)\n",
 		Mod_id,UE_id,rnti,frame,subframe,mcs,
 		*first_rb,eNB_mac_inst[Mod_id].UE_template[UE_id].nb_rb_ul[harq_pid],
-		mac_xface->get_TBS_UL(mcs,eNB_mac_inst[Mod_id].UE_template[UE_id].nb_rb_ul[harq_pid]));
+		mac_xface->get_TBS_UL(mcs,eNB_mac_inst[Mod_id].UE_template[UE_id].nb_rb_ul[harq_pid]),
+		harq_pid);
 	  
 	  rballoc = mac_xface->computeRIV(mac_xface->lte_frame_parms->N_RB_UL,
 					  *first_rb,
@@ -2487,7 +2492,7 @@ u32 allocate_prbs_sub(int nb_rb, u8 *rballoc) {
   LOG_D(MAC,"*****Check1RBALLOC****: %d%d%d%d (nb_rb %d,N_RBGS %d)\n",
 	rballoc[3],rballoc[2],rballoc[1],rballoc[0],nb_rb,mac_xface->lte_frame_parms->N_RBGS);
   while((nb_rb >0) && (check < mac_xface->lte_frame_parms->N_RBGS)){
-    printf("rballoc[%d] %d\n",check,rballoc[check]);
+    //printf("rballoc[%d] %d\n",check,rballoc[check]);
     if(rballoc[check] == 1){
       rballoc_dci |= (1<<((mac_xface->lte_frame_parms->N_RBGS-1)-check));
       switch (mac_xface->lte_frame_parms->N_RB_DL) {
@@ -2510,7 +2515,7 @@ u32 allocate_prbs_sub(int nb_rb, u8 *rballoc) {
 	break;
       }
     }
-    printf("rb_alloc %x\n",rballoc_dci);
+    //printf("rb_alloc %x\n",rballoc_dci);
     check = check+1;
     //    check1 = check1+2;
   }
@@ -3357,7 +3362,7 @@ void schedule_ue_spec(unsigned char Mod_id,
 				dl_pow_off,
 				pre_nb_available_rbs,
 				mac_xface->lte_frame_parms->N_RBGS,
-				&rballoc_sub_UE[0][0]);
+				rballoc_sub_UE);
 
 
   for (UE_id=0;UE_id<granted_UEs;UE_id++) {
diff --git a/targets/RTAI/USER/lte-softmodem.c b/targets/RTAI/USER/lte-softmodem.c
index 75ffcdbfe12443cce41fa25926f20b374dacd85c..4fe43ba3e63dd51948b36c81e07186e3f0cbe97a 100644
--- a/targets/RTAI/USER/lte-softmodem.c
+++ b/targets/RTAI/USER/lte-softmodem.c
@@ -1128,6 +1128,8 @@ int main(int argc, char **argv) {
   N_ZC = (prach_fmt <4)?839:139;
 
   if (UE_flag==1) {
+    g_log->log_component[HW].level = LOG_DEBUG;
+    g_log->log_component[HW].flag  = LOG_HIGH;
 #ifdef OPENAIR2
     g_log->log_component[PHY].level = LOG_INFO;
 #else
@@ -1221,6 +1223,8 @@ int main(int argc, char **argv) {
     printf("tx_max_power = %d -> amp %d\n",tx_max_power,get_tx_amp(tx_max_power,tx_max_power));
   }
   else { //this is eNB
+    g_log->log_component[HW].level = LOG_DEBUG;
+    g_log->log_component[HW].flag  = LOG_HIGH;
 #ifdef OPENAIR2
     g_log->log_component[PHY].level = LOG_INFO;
 #else
@@ -1265,7 +1269,7 @@ int main(int argc, char **argv) {
     openair_daq_vars.ue_dl_rb_alloc=0x1fff;
     openair_daq_vars.target_ue_dl_mcs=20;
     openair_daq_vars.ue_ul_nb_rb=6;
-    openair_daq_vars.target_ue_ul_mcs=9;
+    openair_daq_vars.target_ue_ul_mcs=11;
 
     // if AGC is off, the following values will be used
     //    for (i=0;i<4;i++)