diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
index 0a7d7b1a21f76ce8d3ad8622edb1ec2c68fe93f9..43c14bde1c1a2178bc964b86b5ae0eca4e929608 100644
--- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
@@ -1164,16 +1164,21 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
                               l/(frame_parms->symbols_per_tti/2));
   }
 
+  int correction_factor = 1;
+  int deltaMCS=1; 
+  int MPR_times_Ks;
+
+  if (deltaMCS==1) {
+// Note we're using TBS instead of sumKr, since didn't run segmentation yet!
+    MPR_times_Ks = 5*ulsch[UE_id]->harq_processes[harq_pid]->TBS/(ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*4*ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch);
+    if (MPR_times_Ks > 0) correction_factor = (1<<MPR_times_Ks) - 1;
+  }
   for (i=0; i<frame_parms->nb_antennas_rx; i++) {
     
     pusch_vars->ulsch_power[i] = signal_energy_nodc(pusch_vars->drs_ch_estimates[i],
-						    ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12);
+						    ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12)/correction_factor;
+//printf("%4.4d.%d power harq_pid %d rb %2.2d TBS %2.2d (MPR_times_Ks %d correction %d)  power %d dBtimes10\n", proc->frame_rx, proc->subframe_rx, harq_pid, ulsch[UE_id]->harq_processes[harq_pid]->nb_rb, ulsch[UE_id]->harq_processes[harq_pid]->TBS,MPR_times_Ks,correction_factor,dB_fixed_times10(pusch_vars->ulsch_power[i])); 
     
-#ifdef LOCALIZATION
-    pusch_vars->subcarrier_power = (int32_t *)malloc(ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*sizeof(int32_t));
-    pusch_vars->active_subcarrier = subcarrier_energy(pusch_vars->drs_ch_estimates[i],
-						      ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12, pusch_vars->subcarrier_power, rx_power_correction);
-#endif
   }
 
 
diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c
index 84e6e9e221f0eff374109aa1d14938c23f1f111d..5b74cdc4aec5180ce4473dfa60209222b53f2226 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler.c
@@ -481,7 +481,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, sub_frame
             UE_list->UE_template[CC_id][i].phr_info,
             UE_list->UE_sched_ctrl[i].dl_cqi[CC_id],
 	    (UE_list->UE_sched_ctrl[i].pusch_snr[CC_id]-128)/2,
-	    (UE_list->UE_sched_ctrl[i].pucch_snr[CC_id]-128)/2);
+	    (UE_list->UE_sched_ctrl[i].pucch1_snr[CC_id]-128)/2);
     }
 
     RC.eNB[module_idP][CC_id]->pusch_stats_bsr[i][(frameP*10)+subframeP]=-63;