diff --git a/nfapi/oai_integration/nfapi_pnf.c b/nfapi/oai_integration/nfapi_pnf.c
index 9f22edb5b9a65ae86662f4ca1aff0d35260028d4..2a6fc334f439cc6eb1a801c6bf71a2fcb05da977 100644
--- a/nfapi/oai_integration/nfapi_pnf.c
+++ b/nfapi/oai_integration/nfapi_pnf.c
@@ -1110,6 +1110,7 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi
   }
 
   if(phy_info->timing_info_mode & 0x2) {
+	  //printf("Panos-D: start_request () Enabling timing_info_mode_aperiodic \n");
     p7_config->timing_info_mode_aperiodic = 1;
   }
 
@@ -1177,7 +1178,7 @@ int start_request(nfapi_pnf_config_t* config, nfapi_pnf_phy_config_t* phy, nfapi
     NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] DJP - HACK - Set p7_config global ready for subframe ind%s\n", __FUNCTION__);
     p7_config_g = p7_config;
 
-    NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] Panos-D: start_request, BUFFER SIZE: %d", p7_config_g->subframe_buffer_size);
+    //NFAPI_TRACE(NFAPI_TRACE_INFO, "[PNF] Panos-D: start_request, BUFFER SIZE: %d", p7_config_g->subframe_buffer_size);
     //printf("Panos-D: start_request, bUFFER SIZE: %d", p7_config_g->subframe_buffer_size);
 
     // Need to wait for main thread to create RU structures
diff --git a/nfapi/open-nFAPI/pnf/src/pnf_p7.c b/nfapi/open-nFAPI/pnf/src/pnf_p7.c
index 8cbd84bd0b21b745c78f1df2c455a0a521d7c984..2ea0fae13200be063629049a1dea61a204919051 100644
--- a/nfapi/open-nFAPI/pnf/src/pnf_p7.c
+++ b/nfapi/open-nFAPI/pnf/src/pnf_p7.c
@@ -826,6 +826,7 @@ int pnf_p7_subframe_ind(pnf_p7_t* pnf_p7, uint16_t phy_id, uint16_t sfn_sf)
 		}
 		else if(pnf_p7->_public.timing_info_mode_aperiodic && pnf_p7->timing_info_aperiodic_send)
 		{
+			printf("Panos-D: Sending aperiodic timing info message \n");
 			pnf_pack_and_send_timing_info(pnf_p7);
 
 			pnf_p7->timing_info_aperiodic_send = 0;
diff --git a/nfapi/open-nFAPI/pnf/src/pnf_p7_interface.c b/nfapi/open-nFAPI/pnf/src/pnf_p7_interface.c
index 389f0357053a920f0e42d2c2b0c98f0dbf8f9a44..faa667f2ba30aea0dd5c887f0be74467f1460374 100644
--- a/nfapi/open-nFAPI/pnf/src/pnf_p7_interface.c
+++ b/nfapi/open-nFAPI/pnf/src/pnf_p7_interface.c
@@ -34,6 +34,7 @@ nfapi_pnf_p7_config_t* nfapi_pnf_p7_config_create()
 	_this->_public.subframe_buffer_size = 8;
 	_this->_public.timing_info_mode_periodic = 1;
 	_this->_public.timing_info_period = 32;
+	//printf("Panos-D: nfapi_pnf_p7_config_create() Enabling timing_info_mode_aperiodic \n");
 	_this->_public.timing_info_mode_aperiodic = 1;
 	
 	_this->_public.checksum_enabled = 1;
diff --git a/nfapi/open-nFAPI/vnf/src/vnf_p7.c b/nfapi/open-nFAPI/vnf/src/vnf_p7.c
index bcd06be6a2291646c214a756cb1a31eb72eb4778..3c469c942bc028c81f8cbbf1492850891be06604 100644
--- a/nfapi/open-nFAPI/vnf/src/vnf_p7.c
+++ b/nfapi/open-nFAPI/vnf/src/vnf_p7.c
@@ -1249,12 +1249,12 @@ void vnf_handle_timing_info(void *pRecvMsg, int recvMsgLen, vnf_p7_t* vnf_p7)
           //NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() PNF:SFN/SF:%d VNF:SFN/SF:%d deltaSFNSF:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(ind.last_sfn_sf), NFAPI_SFNSF2DEC(vnf_p7->p7_connections[0].sfn_sf), vnf_pnf_sfnsf_delta);
 
           // Panos: Careful here!!!
-          if (vnf_pnf_sfnsf_delta>1 || vnf_pnf_sfnsf_delta < -1)
-          //if (vnf_pnf_sfnsf_delta>0 || vnf_pnf_sfnsf_delta < 0)
+          //if (vnf_pnf_sfnsf_delta>1 || vnf_pnf_sfnsf_delta < -1)
+          if (vnf_pnf_sfnsf_delta>0 || vnf_pnf_sfnsf_delta < 0)
           {
             NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() LARGE SFN/SF DELTA between PNF and VNF delta:%d VNF:%d PNF:%d\n\n\n\n\n\n\n\n\n", __FUNCTION__, vnf_pnf_sfnsf_delta, NFAPI_SFNSF2DEC(vnf_p7->p7_connections[0].sfn_sf), NFAPI_SFNSF2DEC(ind.last_sfn_sf));
             // Panos: Careful here!!!
-            //vnf_p7->p7_connections[0].sfn_sf = ind.last_sfn_sf;
+            vnf_p7->p7_connections[0].sfn_sf = ind.last_sfn_sf;
           }
         }
 }
diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h
index 1491a12411a1c09633836ce2ad7b85e780aa42d5..2999f34ba53c9bb91c7fc420bec976e3e3f71c45 100644
--- a/openair2/LAYER2/MAC/defs.h
+++ b/openair2/LAYER2/MAC/defs.h
@@ -1479,6 +1479,8 @@ typedef struct {
   /// Panos: Phy_stub mode: Boolean variable to distinguish whether a Msg3 or a regular ULSCH data pdu should be generated
   /// after the reception of NFAPI_UL_CONFIG_ULSCH_PDU_TYPE.
   uint8_t first_ULSCH_Tx;
+  int ra_frame; 	// This variable keeps the frame in which the RA started for the specific UE. It is used in order
+                    // to make sure that different UEs RA starts within a number of frames difference.
 
   /// Panos: Pointers to config_request types. Used from nfapi callback functions.
   nfapi_dl_config_request_t* dl_config_req;
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
index bc77637ad3be6c98fc0d62c069a6a35f6772b1ff..788a27370510188e0d6a8aa1f98831b08a86b338 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
@@ -1214,7 +1214,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
 #endif
     {
     // This is normal LTE case
-	LOG_I(MAC, "Panos-D: generate_Msg4 1 ra->Msg4_frame SFN/SF: %d.%d, SFN/SF: %d.%d \n", ra->Msg4_frame, ra->Msg4_subframe, frameP, subframeP);
+	LOG_I(MAC, "Panos-D: generate_Msg4 1 ra->Msg4_frame SFN/SF: %d.%d,  frameP SFN/SF: %d.%d FOR UE_Mod: %d \n", ra->Msg4_frame, ra->Msg4_subframe, frameP, subframeP, module_idP);
     	if ((ra->Msg4_frame == frameP) && (ra->Msg4_subframe == subframeP)) {
 
     	    // Get RRCConnectionSetup for Piggyback
@@ -1224,7 +1224,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
     		rrc_sdu_length = mac_rrc_data_req(module_idP, CC_idP, frameP, CCCH, 1,	// 1 transport block
     						      &cc[CC_idP].CCCH_pdu.payload[0], 0);	// not used in this case
 
-    	    LOG_D(MAC,
+    	    LOG_I(MAC,
     	    	  "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n",
     	    	  module_idP, CC_idP, frameP, subframeP, UE_id, rrc_sdu_length);
 
@@ -1503,8 +1503,8 @@ check_Msg4_retransmission(module_id_t module_idP, int CC_idP,
     N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth);
 
     LOG_I(MAC,
-	  "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d)\n",
-	  module_idP, CC_idP, frameP, subframeP, ra->harq_pid, round);
+	  "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d), UE_id: %d \n",
+	  module_idP, CC_idP, frameP, subframeP, ra->harq_pid, round, UE_id);
 
     if (round != 8) {
 
diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c
index 5219434df62026a2ee4e2656bd91f434f531568f..87c2dd6370dc9c076fc81583b79a1439e796e926 100644
--- a/openair2/LAYER2/MAC/ue_procedures.c
+++ b/openair2/LAYER2/MAC/ue_procedures.c
@@ -1625,7 +1625,7 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
 	   uint8_t * ulsch_buffer, uint16_t buflen, uint8_t * access_mode)
 {
 
-	LOG_I(MAC, "Panos-D: UE[%d] In ue_get_sdu() 1  \n", module_idP);
+	//LOG_I(MAC, "Panos-D: UE[%d] In ue_get_sdu() 1  \n", module_idP);
     uint8_t total_rlc_pdu_header_len = 0, rlc_pdu_header_len_last = 0;
     uint16_t buflen_remain = 0;
     uint8_t bsr_len = 0, bsr_ce_len = 0, bsr_header_len = 0;
@@ -1655,7 +1655,7 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
     rlc_buffer_occupancy_t lcid_buffer_occupancy_old =
 	0, lcid_buffer_occupancy_new = 0;
 
-    LOG_I(MAC,
+    LOG_D(MAC,
 	  "[UE %d] MAC PROCESS UL TRANSPORT BLOCK at frame%d subframe %d TBS=%d\n",
 	  module_idP, frameP, subframe, buflen);
 
@@ -2206,7 +2206,7 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
 					   bsr_s,	// short bsr
 					   bsr_l, post_padding);	// long_bsr
 
-    LOG_I(MAC,
+    LOG_D(MAC,
 	  "[UE %d] Generate header :bufflen %d  sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,  total_rlc_pdu_header_len %d, padding %d,post_padding %d, bsr len %d, phr len %d, reminder %d \n",
 	  module_idP, buflen, sdu_length_total, num_sdus, sdu_lengths[0],
 	  sdu_lcids[0], payload_offset, total_rlc_pdu_header_len,
@@ -2214,7 +2214,7 @@ ue_get_sdu(module_id_t module_idP, int CC_id, frame_t frameP,
 	  buflen - sdu_length_total - payload_offset);
     // cycle through SDUs and place in ulsch_buffer
     if (sdu_length_total) {
-    	LOG_I(MAC, "Panos-D: [UE %d] ue_get_sdu() 2 before copying to ulsch_buffer, SFN/SF: %d/%d \n \n \n", module_idP, frameP, subframe);
+    	//LOG_I(MAC, "Panos-D: [UE %d] ue_get_sdu() 2 before copying to ulsch_buffer, SFN/SF: %d/%d \n \n \n", module_idP, frameP, subframe);
 	memcpy(&ulsch_buffer[payload_offset], ulsch_buff,
 	       sdu_length_total);
     }
diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.c b/openair2/PHY_INTERFACE/phy_stub_UE.c
index 1cb402cd0bfe476c8808a675319214f8fb374833..7392fe6c297c9ff91c8a590ccec6b39290f9901e 100644
--- a/openair2/PHY_INTERFACE/phy_stub_UE.c
+++ b/openair2/PHY_INTERFACE/phy_stub_UE.c
@@ -312,7 +312,7 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subfram
 
 void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IND_t *UL_INFO, nfapi_ul_config_ulsch_harq_information *harq_information, uint16_t rnti)
 {
-	printf(MAC, "Panos-D: fill_ulsch_harq_indication_UE_MAC 1 \n");
+	//LOG_I(MAC, "Panos-D: fill_ulsch_harq_indication_UE_MAC 1 \n");
 
   //int UE_id = find_dlsch(rnti,eNB,SEARCH_EXIST);
   //AssertFatal(UE_id>=0,"UE_id doesn't exist\n");
@@ -577,7 +577,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
   // check if we have received a dci for this ue and ulsch descriptor is configured
 
   if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) {
-	  LOG_D(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2 \n");
+	  //LOG_D(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2 \n");
     //AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0,
     //            "No existing UE ULSCH for rnti %x\n",rel8->rnti);
     LOG_D(PHY,"Applying UL config for UE, rnti %x for frame %d, subframe %d\n",
@@ -589,7 +589,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
     uint8_t access_mode=SCHEDULED_ACCESS;
     if(buflen>0){
     	if(UE_mac_inst[Mod_id].first_ULSCH_Tx == 1){ // Msg3 case
-    		LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2.2 \n");
+    		LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2.2, Mod_id:%d, SFN/SF: %d/%d \n", Mod_id, frame, subframe);
     		fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti);
     		fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,buflen, rnti, index);
     		Msg3_transmitted(Mod_id, 0, frame, 0);
@@ -601,7 +601,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
     		//UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
     	}
     	else {
-    		LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2.3 \n");
+    		//LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 2.3 \n");
     		ue_get_sdu( Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
     		fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti);
     		fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_buffer,buflen, rnti, index);
@@ -610,8 +610,9 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
   }
 
   else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_HARQ_PDU_TYPE) {
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3 \n");
-    //AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0,
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3 \n");
+
+	  //AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0,
     //            "No available UE ULSCH for rnti %x\n",ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti);
 	  uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32)));
 	  uint16_t buflen = ul_config_pdu->ulsch_harq_pdu.ulsch_pdu.ulsch_pdu_rel8.size;
@@ -629,20 +630,20 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
 			  UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
 		  }
 		  else {
-			  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3.1 \n");
+			  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3.1 \n");
 			  ue_get_sdu( Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
 			  fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti);
 			  fill_rx_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_buffer,buflen, rnti, index);
 		  }
 
 	  }
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3.2 \n");
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 3.2 \n");
 	  if(ulsch_harq_information!=NULL)
 		  fill_ulsch_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti);
 
   }
   else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_RI_PDU_TYPE) {
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 4 \n");
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 4 \n");
     //AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti,
     //                                eNB,SEARCH_EXIST_OR_FREE))>=0,
     //            "No available UE ULSCH for rnti %x\n",ul_config_pdu->ulsch_cqi_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti);
@@ -671,7 +672,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
 
   }
   else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE) {
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 5 \n");
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 5 \n");
     //AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti,
     //                                eNB,SEARCH_EXIST_OR_FREE))>=0,
     //            "No available UE ULSCH for rnti %x\n",ul_config_pdu->ulsch_cqi_harq_ri_pdu.ulsch_pdu.ulsch_pdu_rel8.rnti);
@@ -705,7 +706,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
 
   }
   else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) {
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 6 \n");
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 6 \n");
   //  AssertFatal((UE_id = find_uci(ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti,
   //                                proc->frame_tx,proc->subframe_tx,eNB,SEARCH_EXIST_OR_FREE))>=0,
   //              "No available UE UCI for rnti %x\n",ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti);
@@ -713,7 +714,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
 	  uint16_t rnti = ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti;
 
 	  nfapi_ul_config_harq_information *ulsch_harq_information = &ul_config_pdu->uci_harq_pdu.harq_information;
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 7 \n");
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 7 \n");
 	  fill_uci_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO,ulsch_harq_information, rnti);
   }
   else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE) {
@@ -726,7 +727,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
     AssertFatal(1==0,"NFAPI_UL_CONFIG_UCI_CQI_SR_PDU_TYPE not handled yet\n");
   }
   else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_SR_PDU_TYPE) {
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 8 \n");
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 8 \n");
+
     //AssertFatal((UE_id = find_uci(ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel8.rnti,
     //                              proc->frame_tx,proc->subframe_tx,eNB,SEARCH_EXIST_OR_FREE))>=0,
     //            "No available UE UCI for rnti %x\n",ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel8.rnti);
@@ -737,7 +739,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
 
   }
   else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE) {
-	  LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 9 \n");
+	  //LOG_I(MAC, "Panos-D: handle_nfapi_ul_pdu_UE_MAC 9 \n");
     //AssertFatal((UE_id = find_uci(rel8->rnti,proc->frame_tx,proc->subframe_tx,eNB,SEARCH_EXIST_OR_FREE))>=0,
     //            "No available UE UCI for rnti %x\n",ul_config_pdu->uci_sr_harq_pdu.ue_information.ue_information_rel8.rnti);
 
@@ -934,32 +936,6 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int timer_frame, int ti
 
       handle_nfapi_ul_pdu_UE_MAC(Mod_id,&req->ul_config_request_body.ul_config_pdu_list[i],sfn,sf,req->ul_config_request_body.srs_present, i);
 
-      /*if (UL_INFO->crc_ind.crc_indication_body.number_of_crcs>0)
-      {
-            //LOG_D(PHY,"UL_info->crc_ind.crc_indication_body.number_of_crcs:%d CRC_IND:SFN/SF:%d\n", UL_info->crc_ind.crc_indication_body.number_of_crcs, NFAPI_SFNSF2DEC(UL_info->crc_ind.sfn_sf));
-    	  oai_nfapi_crc_indication(&UL_INFO->crc_ind);
-    	  LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.2 \n");
-    	  UL_INFO->crc_ind.crc_indication_body.number_of_crcs = 0;
-      }
-      if (UL_INFO->rx_ind.rx_indication_body.number_of_pdus>0)
-      {
-    	  //LOG_D(PHY,"UL_info->rx_ind.number_of_pdus:%d RX_IND:SFN/SF:%d\n", UL_info->rx_ind.rx_indication_body.number_of_pdus, NFAPI_SFNSF2DEC(UL_info->rx_ind.sfn_sf));
-    	  LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.3 \n");
-    	  oai_nfapi_rx_ind(&UL_INFO->rx_ind);
-    	  LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.4 \n");
-    	  UL_INFO->rx_ind.rx_indication_body.number_of_pdus = 0;
-      }*/
-
-
-
-      /*if (UL_INFO->rx_ind.rx_indication_body.number_of_pdus>0)
-      {
-    	  //LOG_D(PHY,"UL_info->rx_ind.number_of_pdus:%d RX_IND:SFN/SF:%d\n", UL_info->rx_ind.rx_indication_body.number_of_pdus, NFAPI_SFNSF2DEC(UL_info->rx_ind.sfn_sf));
-    	  oai_nfapi_rx_ind(&UL_INFO->rx_ind);
-    	  oai_nfapi_crc_indication(&UL_INFO->crc_ind);
-    	  //UL_INFO->rx_ind.rx_indication_body.number_of_pdus = 0;
-      }*/
-      //LOG_D(MAC, "Panos-D: ul_config_req_UE_MAC 3 \n");
 
     }
     else
diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c
index a9b05101fb9929fd33269519a00babd66531a846..0bdaaf3808907a2221b75455d33b8b14680cbef6 100644
--- a/openair2/RRC/LITE/L2_interface.c
+++ b/openair2/RRC/LITE/L2_interface.c
@@ -94,6 +94,7 @@ mac_rrc_data_req(
 
     if((Srb_id & RAB_OFFSET) == BCCH) {
       if(RC.rrc[Mod_idP]->carrier[CC_id].SI.Active==0) {
+    	  //LOG_D(RRC, "Panos-D: mac_rrc_data_req() 1, BCCH case, RC.rrc[Mod_idP]->carrier[CC_id].SI.Active==0 \n");
         return 0;
       }
 
@@ -183,6 +184,7 @@ mac_rrc_data_req(
 #endif
         return(RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23);
       } else {
+    	  //LOG_D(RRC, "Panos-D: mac_rrc_data_req() 2 \n");
         return(0);
       }
     }
@@ -243,6 +245,7 @@ mac_rrc_data_req(
         Srb_info->Tx_buffer.payload_size=0;
       }
 
+      LOG_D(RRC, "mac_rrc_data_req(), Sdu_size: %d \n", Sdu_size);
       return (Sdu_size);
     }
 
diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c
index 589de8e00df6227093019fb4e4208be190060ae9..78944e5a3a02645e37997c5366accc308d7bcf05 100644
--- a/openair2/RRC/LITE/rrc_UE.c
+++ b/openair2/RRC/LITE/rrc_UE.c
@@ -3044,7 +3044,7 @@ int decode_BCCH_DLSCH_Message(
                   sizeof(SystemInformationBlockType1_t) );
           LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id );
 
-          LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1");
+          //LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1");
           //printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE decode_SIB1");
           decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp );
         }
@@ -3064,7 +3064,7 @@ int decode_BCCH_DLSCH_Message(
         LOG_D( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n",
                ctxt_pP->module_id,
                ctxt_pP->frame );
-        LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI");
+        //LOG_I( RRC, "Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI");
         //printf("Panos-D: decode_BCCH_DLSCH_Message1 BEFORE OTHER decode_SI");
         decode_SI( ctxt_pP, eNB_index );
       }
@@ -3919,7 +3919,7 @@ uint64_t arfcn_to_freq(long arfcn) {
   // Dump contents
   if ((*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_systemInformation_r8 ||
 		  (*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_criticalExtensionsFuture) {
-    LOG_I( RRC, "[UE] (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count %d\n",
+    LOG_D( RRC, "[UE] (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count %d\n",
            (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count );
   } else {
 	  //LOG_D( RRC, "Panos-D: decode_SI 2.3 \n");
@@ -3929,7 +3929,7 @@ uint64_t arfcn_to_freq(long arfcn) {
 
   LOG_D( RRC, "Panos-D: decode_SI 3 \n");
   for (int i=0; i<(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count; i++) {
-    LOG_I( RRC, "SI count %d\n", i );
+    //LOG_I( RRC, "Panos-D: SI count %d\n", i );
     struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *typeandinfo;
     typeandinfo = (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i];
 
diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c
index 1948c7285bc45957a3cd0f069632685ba18f556f..870d10b3690e03babc3f767bba4fce6d63d90699 100644
--- a/openair2/RRC/LITE/rrc_eNB.c
+++ b/openair2/RRC/LITE/rrc_eNB.c
@@ -1164,6 +1164,7 @@ rrc_eNB_generate_RRCConnectionReject(
   RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size =
     do_RRCConnectionReject(ctxt_pP->module_id,
                           (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload);
+  //LOG_D(RRC,"%s rrc_eNB_generate_RRCConnectionReject() Payload size return value: %d \n", __FUNCTION__, RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size);
 
 #ifdef RRC_MSG_PRINT
   LOG_F(RRC,"[MSG] RRCConnectionReject\n");
@@ -1219,6 +1220,10 @@ rrc_eNB_generate_RRCConnectionReestablishment(
                                     SRB_configList,
                                     &ue_context_pP->ue_context.physicalConfigDedicated);
 
+  //LOG_D(RRC,"%s rrc_eNB_generate_RRCConnectionReestablishment() Payload size return value: %d \n", __FUNCTION__, RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size);
+
+
+
 #ifdef RRC_MSG_PRINT
   LOG_F(RRC,"[MSG] RRCConnectionReestablishment\n");
 
@@ -1953,6 +1958,10 @@ rrc_eNB_generate_RRCConnectionReestablishmentReject(
     do_RRCConnectionReestablishmentReject(ctxt_pP->module_id,
                           (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload);
 
+  //LOG_D(RRC,"%s rrc_eNB_generate_RRCConnectionReestablishmentReject() Payload size return value: %d \n", __FUNCTION__, RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size);
+
+
+
 #ifdef RRC_MSG_PRINT
   LOG_F(RRC,"[MSG] RRCConnectionReestablishmentReject\n");
 
@@ -5062,6 +5071,10 @@ rrc_eNB_generate_RRCConnectionSetup(
                           SRB_configList,
                           &ue_context_pP->ue_context.physicalConfigDedicated);
 
+  LOG_D(RRC,"%s rrc_eNB_generate_RRCConnectionSetup() Payload size return value: %d, SFN/SF:%d/%d \n", __FUNCTION__, RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size, ctxt_pP->frame, ctxt_pP->subframe);
+
+
+
 #ifdef RRC_MSG_PRINT
   LOG_F(RRC,"[MSG] RRC Connection Setup\n");
 
diff --git a/targets/RT/USER/lte-softmodem-stub.c b/targets/RT/USER/lte-softmodem-stub.c
index be8ef1fd00529aa3754ec96b0aad1145705b287b..02b1bfd34e1293e69956efff49080e252161e540 100644
--- a/targets/RT/USER/lte-softmodem-stub.c
+++ b/targets/RT/USER/lte-softmodem-stub.c
@@ -1446,6 +1446,10 @@ int main( int argc, char **argv )
 
   printf("Sending sync to all threads\n");
 
+  /*if(nfapi_mode==3){
+	  usleep(1000);
+  }*/
+
   pthread_mutex_lock(&sync_mutex);
   sync_var=0;
   pthread_cond_broadcast(&sync_cond);
diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c
index 6ed3d2d66ecfc31ef30c55228319a7554757204c..571ded29277cdf405aaef40e5d74b0710d1926cb 100644
--- a/targets/RT/USER/lte-ue.c
+++ b/targets/RT/USER/lte-ue.c
@@ -878,8 +878,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
 	thread_top_init("UE_phy_stub_thread_rxn_txnp4",1,870000L,1000000L,1000000L);
 
 	module_id_t Mod_id = 0;
-	int init_ra_UE = -1; // This counter is used to initiate the RA of each UE in different SFrames
-	int global_cnt = 0;
+	//int init_ra_UE = -1; // This counter is used to initiate the RA of each UE in different SFrames
   static __thread int UE_thread_rxtx_retval;
   struct rx_tx_thread_data *rtd = arg;
   UE_rxtx_proc_t *proc = rtd->proc;
@@ -905,6 +904,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
       	UE_mac_inst[Mod_id].dl_config_req = NULL;
       	UE_mac_inst[Mod_id].ul_config_req = NULL;
       	UE_mac_inst[Mod_id].hi_dci0_req = NULL;
+      	UE_mac_inst[Mod_id].ra_frame = 0;
       	tx_request_pdu_list = NULL;
       	tx_req_num_elems = 0;
       	UE_mac_inst[Mod_id].tx_req = NULL;
@@ -949,25 +949,8 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
       updateTimes(proc->gotIQs, &t2, 10000, "Delay to wake up UE_Thread_Rx (case 2)");*/
 
 
-
-    // Process Rx data for one sub-frame
-
-    /*if(global_cnt == 0){
-    	init_ra_UE++;
-    	global_cnt++;
-    }*/
-
-    /*if(global_cnt>= 0 && global_cnt<15000)
-    	global_cnt++;
-    if(global_cnt == 10000 || global_cnt == 15000){
-    	LOG_I(MAC, "Panos-D: global_cnt: %d", global_cnt);
-    	global_cnt++;
-    	init_ra_UE++;
-    }*/
-
-
     //if(timer_frame%5 == 0 && timer_subframe%10 == 0)
-    	init_ra_UE++;
+    	//init_ra_UE++;
 
     	//Panos: Not sure whether we should put the memory allocation here.
     	//*** Note we should find the right place to call free(UL_INFO).
@@ -1045,14 +1028,6 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
       //oai_subframe_ind(timer_frame, timer_subframe);
 
 
-
-
-      //LOG_I( MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind \n");
-      //printf("Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind \n");
-      /*if(UE_mac_inst[Mod_id].tx_req!= NULL){
-	printf("Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind 2\n");
-	tx_req_UE_MAC(UE_mac_inst[Mod_id].tx_req);
-	}*/
       if(UE_mac_inst[Mod_id].dl_config_req!= NULL) {
 	//LOG_I( MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 after oai_subframe_ind 3, NB_UE_INST:%d \n", NB_UE_INST);
 	dl_config_req_UE_MAC(UE_mac_inst[Mod_id].dl_config_req, Mod_id);
@@ -1082,9 +1057,6 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
 
       //#endif
     }
-  //} //for (Mod_id=0; Mod_id<NB_UE_INST; Mod_id++)
-
-//>>>>>>> Stashed changes
 
 #if UE_TIMING_TRACE
     start_meas(&UE->generic_stat);
@@ -1130,16 +1102,21 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
 	(UE->frame_parms.frame_type == FDD) )
       if (UE->mode != loop_through_memory){
 
-	if ((UE_mac_inst[Mod_id].UE_mode[0] == PRACH) ) {
+	if ((UE_mac_inst[Mod_id].UE_mode[0] == PRACH  && Mod_id == 0) || (UE_mac_inst[Mod_id].UE_mode[0] == PRACH && Mod_id>0 && proc->frame_rx >= UE_mac_inst[Mod_id-1].ra_frame + 20) ) {
 	  //LOG_D(MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 before RACH \n");
 
 	  // check if we have PRACH opportunity
 
-	  if (is_prach_subframe(&UE->frame_parms,proc->frame_tx, proc->subframe_tx && Mod_id == (module_id_t) init_ra_UE) ) { //&& Mod_id == init_ra_UE
+	  if (is_prach_subframe(&UE->frame_parms,proc->frame_tx, proc->subframe_tx) ) {
+
+	  // The one working strangely...
+      //if (is_prach_subframe(&UE->frame_parms,proc->frame_tx, proc->subframe_tx && Mod_id == (module_id_t) init_ra_UE) ) {
+
 	    //LOG_I(MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 before RACH 2 \n");
 	    PRACH_RESOURCES_t *prach_resources = ue_get_rach(Mod_id, 0, proc->frame_tx, 0, proc->subframe_tx);
 	    if(prach_resources!=NULL ) {
-	      //LOG_I(MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 before RACH 3 \n");
+	    	UE_mac_inst[Mod_id].ra_frame = proc->frame_rx;
+	      LOG_I(MAC, "Panos-D: UE_phy_stub_thread_rxn_txnp4 before RACH 3, Mod_id: %d \n", Mod_id );
 	      fill_rach_indication_UE_MAC(Mod_id, proc->frame_tx ,proc->subframe_tx, UL_INFO, prach_resources->ra_PreambleIndex, prach_resources->ra_RNTI);
 	      Msg1_transmitted(Mod_id, 0, proc->frame_tx, 0);
 	      UE_mac_inst[Mod_id].UE_mode[0] = RA_RESPONSE;
@@ -1202,7 +1179,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
     if (UL_INFO->crc_ind.crc_indication_body.number_of_crcs>0)
       {
     	  //LOG_D(PHY,"UL_info->crc_ind.crc_indication_body.number_of_crcs:%d CRC_IND:SFN/SF:%d\n", UL_info->crc_ind.crc_indication_body.number_of_crcs, NFAPI_SFNSF2DEC(UL_info->crc_ind.sfn_sf));
-    	  LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.2, SFN/SF of PNF counter:%d.%d, number_of_crcs: %d \n", timer_frame, timer_subframe, UL_INFO->crc_ind.crc_indication_body.number_of_crcs);
+    	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.2, SFN/SF of PNF counter:%d.%d, number_of_crcs: %d \n", timer_frame, timer_subframe, UL_INFO->crc_ind.crc_indication_body.number_of_crcs);
     	  oai_nfapi_crc_indication(&UL_INFO->crc_ind);
     	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.21 \n");
     	  UL_INFO->crc_ind.crc_indication_body.number_of_crcs = 0;
@@ -1210,7 +1187,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
       if (UL_INFO->rx_ind.rx_indication_body.number_of_pdus>0)
       {
     	  //LOG_D(PHY,"UL_info->rx_ind.number_of_pdus:%d RX_IND:SFN/SF:%d\n", UL_info->rx_ind.rx_indication_body.number_of_pdus, NFAPI_SFNSF2DEC(UL_info->rx_ind.sfn_sf));
-    	  LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.3, SFN/SF of PNF counter:%d.%d, number_of_pdus: %d \n", timer_frame, timer_subframe, UL_INFO->rx_ind.rx_indication_body.number_of_pdus);
+    	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.3, SFN/SF of PNF counter:%d.%d, number_of_pdus: %d \n", timer_frame, timer_subframe, UL_INFO->rx_ind.rx_indication_body.number_of_pdus);
     	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.3 \n");
     	  oai_nfapi_rx_ind(&UL_INFO->rx_ind);
     	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.31 \n");
@@ -1218,7 +1195,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
       }
       if(UL_INFO->harq_ind.harq_indication_body.number_of_harqs>0)
       {
-    	  LOG_D(MAC, "Panos-D: ul_config_req_UE_MAC 2.4, SFN/SF of PNF counter:%d.%d, number_of_harqs: %d \n", timer_frame, timer_subframe, UL_INFO->harq_ind.harq_indication_body.number_of_harqs);
+    	  //LOG_D(MAC, "Panos-D: ul_config_req_UE_MAC 2.4, SFN/SF of PNF counter:%d.%d, number_of_harqs: %d \n", timer_frame, timer_subframe, UL_INFO->harq_ind.harq_indication_body.number_of_harqs);
     	  oai_nfapi_harq_indication(&UL_INFO->harq_ind);
     	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.41 \n");
     	  UL_INFO->harq_ind.harq_indication_body.number_of_harqs =0;
@@ -1226,7 +1203,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
       }
       if(UL_INFO->sr_ind.sr_indication_body.number_of_srs>0)
       {
-    	  LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.5, SFN/SF of PNF counter:%d.%d, number_of_srs: %d \n", timer_frame, timer_subframe, UL_INFO->sr_ind.sr_indication_body.number_of_srs);
+    	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.5, SFN/SF of PNF counter:%d.%d, number_of_srs: %d \n", timer_frame, timer_subframe, UL_INFO->sr_ind.sr_indication_body.number_of_srs);
     	  oai_nfapi_sr_indication(&UL_INFO->sr_ind);
     	  //LOG_I(MAC, "Panos-D: ul_config_req_UE_MAC 2.51 \n");
     	  UL_INFO->sr_ind.sr_indication_body.number_of_srs = 0;