diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index e2a28118ffc39de7aa088346aef01f37585d18b1..b49613b749091bfebf633e3c9ac4f60bade49974 100644
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -1342,16 +1342,21 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
       //compute the expected ULSCH RX power (for the stats)
       ulsch_harq->delta_TF = get_hundred_times_delta_IF_eNB(eNB,i,harq_pid, 0); // 0 means bw_factor is not considered
       
-      if (ulsch_harq->cqi_crc_status == 1) {
+      if (RC.mac != NULL) { /* ulsim dose not use RC.mac context. */
+        if (ulsch_harq->cqi_crc_status == 1) {
 #ifdef DEBUG_PHY_PROC
 	//if (((frame%10) == 0) || (frame < 50))
 	print_CQI(ulsch_harq->o,ulsch_harq->uci_format,0,fp->N_RB_DL);
 #endif
-	
-	fill_ulsch_cqi_indication(eNB,frame,subframe,
-				  ulsch_harq,
-				  ulsch->rnti);
-	
+          fill_ulsch_cqi_indication(eNB,frame,subframe,ulsch_harq,ulsch->rnti);
+          RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_flag &= (~(1 << subframe));
+        } else {
+          if(RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_flag & (1 << subframe) ){
+            RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_flag &= (~(1 << subframe));
+            RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_timer=30;
+            LOG_D(PHY,"Frame %d,Subframe %d, We're supposed to get a cqi here. Set cqi_req_timer to 30.\n",frame,subframe);
+          }
+        }
       }
     
       if (ret == (1+MAX_TURBO_ITERATIONS)) {
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index da52a8fedcdf9013f47df5231c3f2042fb6353bd..b3021fcc999f0b5fb557fe24c39649e10304fc99 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -2018,16 +2018,6 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP)
 	dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power          = 6000; // equal to RS power
 	dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1                       = mcs;
 
-	// Rel10 fields
-#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
-	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start                           = 3;
-#endif
-	// Rel13 fields
-#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
-	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type                               = 0; // regular UE
-	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type                    = 2; // not BR
-	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io            = 0xFFFF;
-#endif
 
 	if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, P_RNTI)) {
 	  LOG_D(MAC,"Frame %d: Subframe %d : Adding common DCI for P_RNTI\n", frameP,subframeP);
@@ -2068,6 +2058,18 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP)
 	  dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband                 = 1;
 	  dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector                          = 1;
 	  // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector                    = ;
+
+	// Rel10 fields
+#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
+	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start                           = 3;
+#endif
+	// Rel13 fields
+#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
+	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type                               = 0; // regular UE
+	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type                    = 2; // not BR
+	dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io            = 0xFFFF;
+#endif
+
 	  dl_req->number_pdu++;
 
 	  eNB->TX_req[CC_id].sfn_sf                                                     = (frameP<<4)+subframeP;
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
index 76589eebdb7c0ade1ffe50acaf4813bec3138154..06761ed59f1771d2e91bb164750af2aabab7451f 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
@@ -787,13 +787,11 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
 //    unsigned char aggregation;
     mac_rlc_status_resp_t rlc_status;
     unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0;
-    unsigned char header_len_dtch = 0, header_len_dtch_tmp =
-	0, header_len_dtch_last = 0;
+    unsigned char header_len_dtch = 0, header_len_dtch_tmp = 0, header_len_dtch_last = 0;
     unsigned char ta_len = 0;
     unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0;
     uint16_t nb_rb, nb_rb_temp, nb_available_rb;
-    uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding =
-	0, post_padding = 0;
+    uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = 0, post_padding = 0;
     unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES];
     unsigned char round = 0;
     unsigned char harq_pid = 0;
@@ -818,7 +816,10 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
     nfapi_dl_config_request_pdu_t *dl_config_pdu;
     int tdd_sfa;
     int ta_update;
-
+#ifdef DEBUG_eNB_SCHEDULER
+    int k;
+#endif
+  
     start_meas(&eNB->schedule_dlsch);
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
 	(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN);
@@ -1335,8 +1336,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
 			      "[eNB %d][DCCH] CC_id %d Got %d bytes :",
 			      module_idP, CC_id, sdu_lengths[0]);
 
-			for (j = 0; j < sdu_lengths[0]; j++) {
-			    LOG_T(MAC, "%x ", dlsch_buffer[j]);
+			for (k = 0; k < sdu_lengths[0]; k++) {
+			    LOG_T(MAC, "%x ", dlsch_buffer[k]);
 			}
 
 			LOG_T(MAC, "\n");
@@ -1389,8 +1390,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
 			      "[eNB %d][DCCH1] CC_id %d Got %d bytes :",
 			      module_idP, CC_id, sdu_lengths[num_sdus]);
 
-			for (j = 0; j < sdu_lengths[num_sdus]; j++) {
-			    LOG_T(MAC, "%x ", dlsch_buffer[j]);
+			for (k = 0; k < sdu_lengths[num_sdus]; k++) {
+			    LOG_T(MAC, "%x ", dlsch_buffer[k]);
 			}
 
 			LOG_T(MAC, "\n");
@@ -1638,8 +1639,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
 #ifdef DEBUG_eNB_SCHEDULER
 		    LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n",module_idP );
 
-		    for (i = 0; i < 16; i++) {
-			LOG_T(MAC, "%x.", dlsch_buffer[i]);
+		    for (k = 0; k < 16; k++) {
+			LOG_T(MAC, "%x.", dlsch_buffer[k]);
 		    }
 
 		    LOG_T(MAC, "\n");
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
index 3a1e7eed87d9bb64b88bf85a8e2a02fd8b18b6b3..5e07d9e936243594e6aaedf9ac8bc17b6944d9d7 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
@@ -3313,6 +3313,7 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, ue_paging_identity_t ue_pagin
                              &paging_record_p->ue_Identity.choice.s_TMSI.m_TMSI);
     paging_record_p->ue_Identity.choice.s_TMSI.m_TMSI.bits_unused = 0;
   } else if (ue_paging_identity.presenceMask == UE_PAGING_IDENTITY_imsi) {
+    paging_record_p->ue_Identity.present = PagingUE_Identity_PR_imsi;
     IMSI_Digit_t imsi_digit[21];
     for (j = 0; j< ue_paging_identity.choice.imsi.length; j++) {  /* IMSI size */
       imsi_digit[j] = (IMSI_Digit_t)ue_paging_identity.choice.imsi.buffer[j];