diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c
index 2dfb0a1a87dce7fa96cf8efcb831741a9c60ab3c..16811fe70fb68de91e46c12bfd3640b850c2f841 100644
--- a/openair2/RRC/LITE/L2_interface.c
+++ b/openair2/RRC/LITE/L2_interface.c
@@ -673,8 +673,9 @@ void rrc_lite_in_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_inde
 void rrc_lite_out_of_sync_ind(module_id_t Mod_idP, frame_t frameP, uint16_t eNB_index)
 {
   //-------------------------------------------------------------------------------------------//
-  LOG_I(RRC,"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T310 %d, N310 %d, N311 %d)\n ",
+  LOG_I(RRC,"[UE %d] Frame %d: OUT OF SYNC FROM eNB %d (T310 active %d : T310 %d, N310 %d, N311 %d)\n ",
         Mod_idP,frameP,eNB_index,
+	UE_rrc_inst[Mod_idP].Info[eNB_index].T300_active,
         UE_rrc_inst[Mod_idP].Info[eNB_index].T310_cnt,
         UE_rrc_inst[Mod_idP].Info[eNB_index].N310_cnt,
         UE_rrc_inst[Mod_idP].Info[eNB_index].N311_cnt);
diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c
index d41b966f968f2bea8ccd52ea57f4f4f934b22b7d..57b5706229cd883981ea5bb4ff95c483888928d4 100644
--- a/openair2/RRC/LITE/rrc_UE.c
+++ b/openair2/RRC/LITE/rrc_UE.c
@@ -2215,7 +2215,7 @@ static const char* SIB2numberOfRA_Preambles( long value )
   if (value < 0 || value > 15)
     return "ERR";
 
-  snprintf( temp, sizeof(temp), "n%d", value*4 + 4 );
+  snprintf( temp, sizeof(temp), "n%ld", value*4 + 4 );
   temp[3] = 0; // terminate string
   return temp;
 }
@@ -2234,7 +2234,7 @@ static const char* SIB2preambleInitialReceivedTargetPower( long value )
   if (value < 0 || value > 15)
     return "ERR";
 
-  snprintf( temp, sizeof(temp), "dBm-%d", 120 - value*2 );
+  snprintf( temp, sizeof(temp), "dBm-%ld", 120 - value*2 );
   temp[7] = 0; // terminate string
   return temp;
 }
@@ -2246,7 +2246,7 @@ static const char* SIB2preambleTransMax( long value )
     return "ERR";
 
   if (value <= 5) {
-    snprintf( temp, sizeof(temp), "n%d", value+3 );
+    snprintf( temp, sizeof(temp), "n%ld", value+3 );
     return temp;
   }
 
@@ -2277,7 +2277,7 @@ static const char* SIB2ra_ResponseWindowSize( long value )
   if (value == 7)
     return "sf10";
 
-  snprintf( temp, sizeof(temp), "sf%d", value+2 );
+  snprintf( temp, sizeof(temp), "sf%ld", value+2 );
   return temp;
 }
 static const char* SIB2mac_ContentionResolutionTimer( long value )
@@ -2287,7 +2287,7 @@ static const char* SIB2mac_ContentionResolutionTimer( long value )
   if (value < 0 || value > 7)
     return "ERR";
 
-  snprintf( temp, sizeof(temp), "sf%d", 8 + value*8 );
+  snprintf( temp, sizeof(temp), "sf%ld", 8 + value*8 );
   return temp;
 }
 static const char* SIB2modificationPeriodCoeff( long value )
@@ -2988,8 +2988,173 @@ static void dump_sib3( SystemInformationBlockType3_t *sib3 )
   }
 }
 
+int Qoffsettab[31] = {-24,-22,-20,-18,-16,-14,-12,-10,-8,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,8,10,12,14,16,18,20,22,24};
+int PhysCellIdRange[16] = {4,8,12,16,24,32,48,64,84,96,128,168,252,504,0,0};
+
+uint64_t arfcn_to_freq(long arfcn) {
+  
+  if (arfcn < 600)  // Band 1
+    return((uint64_t)2110000000 + (arfcn*100000));
+  else if (arfcn <1200) // Band 2
+    return((uint64_t)1930000000 + ((arfcn-600)*100000));
+  else if (arfcn <1950) // Band 3
+    return((uint64_t)1805000000 + ((arfcn-1200)*100000));
+  else if (arfcn <2400) // Band 4
+    return((uint64_t)2110000000 + ((arfcn-1950)*100000));
+  else if (arfcn <2650) // Band 5
+    return((uint64_t)869000000 + ((arfcn-2400)*100000));
+  else if (arfcn <2750) // Band 6
+    return((uint64_t)875000000 + ((arfcn-2650)*100000));
+  else if (arfcn <3450) // Band 7
+    return((uint64_t)2620000000 + ((arfcn-2750)*100000));
+  else if (arfcn <3800) // Band 8
+    return((uint64_t)925000000 + ((arfcn-3450)*100000));
+  else if (arfcn <4150) // Band 9
+    return((uint64_t)1844900000 + ((arfcn-3800)*100000));
+  else if (arfcn <4650) // Band 10
+    return((uint64_t)2110000000 + ((arfcn-4150)*100000));
+  else if (arfcn <5010) // Band 11
+    return((uint64_t)1475900000 + ((arfcn-4750)*100000));
+  else if (arfcn <5180) // Band 12
+    return((uint64_t)729000000 + ((arfcn-5010)*100000));
+  else if (arfcn <5280) // Band 13
+    return((uint64_t)746000000 + ((arfcn-5180)*100000));
+  else if (arfcn <5730) // Band 14
+    return((uint64_t)758000000 + ((arfcn-5280)*100000));
+  else if (arfcn <5850) // Band 17
+    return((uint64_t)734000000 + ((arfcn-5730)*100000));
+  else if (arfcn <6000) // Band 18
+    return((uint64_t)860000000 + ((arfcn-5850)*100000));
+  else if (arfcn <6150) // Band 19
+    return((uint64_t)875000000 + ((arfcn-5850)*100000));
+  else if (arfcn <6450) // Band 20
+    return((uint64_t)791000000 + ((arfcn-5850)*100000));
+  else if (arfcn <6600) // Band 21
+    return((uint64_t)1495900000 + ((arfcn-5850)*100000));
+  else if (arfcn <7500) // Band 22
+    return((uint64_t)351000000 + ((arfcn-5850)*100000));
+  else if (arfcn <7700) // Band 23
+    return((uint64_t)2180000000 + ((arfcn-5850)*100000));
+  else if (arfcn <8040) // Band 24
+    return((uint64_t)1525000000 + ((arfcn-5850)*100000));
+  else if (arfcn <8690) // Band 25
+    return((uint64_t)1930000000 + ((arfcn-5850)*100000));
+  else if (arfcn <36200) // Band 33
+    return((uint64_t)1900000000 + ((arfcn-36000)*100000));
+  else if (arfcn <36350) // Band 34
+    return((uint64_t)2010000000 + ((arfcn-36200)*100000));
+  else if (arfcn <36950) // Band 35
+    return((uint64_t)1850000000 + ((arfcn-36350)*100000));
+  else if (arfcn <37550) // Band 36
+    return((uint64_t)1930000000 + ((arfcn-36950)*100000));
+  else if (arfcn <37750) // Band 37
+    return((uint64_t)1910000000 + ((arfcn-37550)*100000));
+  else if (arfcn <38250) // Band 38
+    return((uint64_t)2570000000 + ((arfcn-37750)*100000));
+  else if (arfcn <38650) // Band 39
+    return((uint64_t)1880000000 + ((arfcn-38250)*100000));
+  else if (arfcn <39650) // Band 40
+    return((uint64_t)2300000000 + ((arfcn-38650)*100000));
+  else if (arfcn <41590) // Band 41
+    return((uint64_t)2496000000 + ((arfcn-39650)*100000));
+  else if (arfcn <43590) // Band 42
+    return((uint64_t)3400000000 + ((arfcn-41590)*100000));
+  else if (arfcn <45590) // Band 43
+    return((uint64_t)3600000000 + ((arfcn-43950)*100000));
+  else
+    LOG_E(RRC,"Unknown EARFCN %d\n",arfcn);
+
+}
+static void dump_sib5( SystemInformationBlockType5_t *sib5 )
+{
+  InterFreqCarrierFreqList_t interFreqCarrierFreqList = sib5->interFreqCarrierFreqList;
+  int i;
+  InterFreqCarrierFreqInfo_t *ifcfInfo;
+
+  LOG_I( RRC, "Dumping SIB5 (see TS36.331 V8.21.0)\n" );
+  
+  for (i=0;i<interFreqCarrierFreqList.list.count;i++) {
+    LOG_I(RRC, "SIB5 InterFreqCarrierFreq element %d/%d\n",i,interFreqCarrierFreqList.list.count);
+    ifcfInfo = interFreqCarrierFreqList.list.array[i];
+    LOG_I(RRC, "   DL Carrier Frequency/ARFCN : %ld/%d\n",
+	  arfcn_to_freq(ifcfInfo->dl_CarrierFreq),
+	  ifcfInfo->dl_CarrierFreq);
+    LOG_I(RRC,"   Q_RXLevMin : %d\n", ifcfInfo->q_RxLevMin);
+    LOG_I(RRC,"   P_max : %d\n",ifcfInfo->p_Max);
+    LOG_I(RRC,"   T_ReselectionEUTRA : %d\n",ifcfInfo->t_ReselectionEUTRA);
+    if (ifcfInfo->t_ReselectionEUTRA_SF) {
+      LOG_I(RRC,"   t_ReselectionEUTRA_SF.sf_Medium %d, t_ReselectionEUTRA_SF.sf_High %d",
+	    ifcfInfo->t_ReselectionEUTRA_SF->sf_Medium,
+	    ifcfInfo->t_ReselectionEUTRA_SF->sf_High);
+    }
+    LOG_I(RRC,"   threshX_High : %d\n",ifcfInfo->threshX_High);
+    LOG_I(RRC,"   threshX_Low : %d\n",ifcfInfo->threshX_Low);
+    switch(ifcfInfo->allowedMeasBandwidth) {
+    case AllowedMeasBandwidth_mbw6:
+      LOG_I(RRC,"   AllowedMeasBandwidth : 6\n");
+      break;
+    case AllowedMeasBandwidth_mbw15:
+      LOG_I(RRC,"   AllowedMeasBandwidth : 15\n");
+      break;
+    case AllowedMeasBandwidth_mbw25:
+      LOG_I(RRC,"   AllowedMeasBandwidth : 25\n");
+      break;
+    case AllowedMeasBandwidth_mbw50:
+      LOG_I(RRC,"   AllowedMeasBandwidth : 50\n");
+      break;
+    case AllowedMeasBandwidth_mbw75:
+      LOG_I(RRC,"   AllowedMeasBandwidth : 75\n");
+      break;
+    case AllowedMeasBandwidth_mbw100:
+      LOG_I(RRC,"   AllowedMeasBandwidth : 100\n");
+      break;
+    }
+    if (ifcfInfo->presenceAntennaPort1)
+      LOG_I(RRC,"   PresenceAntennaPort1 : True\n");
+    else
+      LOG_I(RRC,"   PresenceAntennaPort1 : False\n");
+    if (ifcfInfo->cellReselectionPriority) {
+      LOG_I(RRC,"   CellReselectionPriority : %d\n",
+	    *ifcfInfo->cellReselectionPriority);
+    }
+    LOG_I(RRC,"   NeighCellConfig  : ");
+    for (i=0;i<ifcfInfo->neighCellConfig.size;i++) {
+      LOG_T(RRC,"%2x ",ifcfInfo->neighCellConfig.buf[i]);
+    }
+    if (ifcfInfo->q_OffsetFreq)
+      LOG_I(RRC,"   Q_OffsetFreq : %d",Qoffsettab[*ifcfInfo->q_OffsetFreq]);
+    if (ifcfInfo->interFreqNeighCellList) {
+      
+      for (i=0;i<ifcfInfo->interFreqNeighCellList->list.count;i++) {
+	LOG_I(RRC,"   Cell %d\n");
+	LOG_I(RRC,"      PhysCellId : %d",ifcfInfo->interFreqNeighCellList->list.array[i]->physCellId);
+	LOG_I(RRC,"      Q_OffsetRange : %d",ifcfInfo->interFreqNeighCellList->list.array[i]->q_OffsetCell);
+	
+      }
+    }
+    if (ifcfInfo->interFreqBlackCellList) {
+      
+      for (i=0;i<ifcfInfo->interFreqBlackCellList->list.count;i++) {
+	LOG_I(RRC,"   Cell %d\n");
+	LOG_I(RRC,"      PhysCellId start: %d\n",ifcfInfo->interFreqBlackCellList->list.array[i]->start);
+	if (ifcfInfo->interFreqBlackCellList->list.array[i]->range) {
+	  LOG_I(RRC,"      PhysCellId Range : %d\n",ifcfInfo->interFreqBlackCellList->list.array[i]->range);
+	}
+      }
+    }
+    if (ifcfInfo->q_QualMin_r9)
+      LOG_I(RRC,"   Q_QualMin_r9 : %d\n",*ifcfInfo->q_QualMin_r9);
+    
+    if (ifcfInfo->threshX_Q_r9) {
+      LOG_I(RRC,"   threshX_HighQ_r9 : %d\n",ifcfInfo->threshX_Q_r9->threshX_HighQ_r9);
+      LOG_I(RRC,"   threshX_LowQ_r9: %d\n",ifcfInfo->threshX_Q_r9->threshX_LowQ_r9);
+    }
+    
+  }
+  
+}
+  
 #ifdef Rel10
-//-----------------------------------------------------------------------------
 static void dump_sib13( SystemInformationBlockType13_r9_t *sib13 )
 {
   LOG_I( RRC, "[UE] Dumping SIB13\n" );
@@ -3134,6 +3299,7 @@ static int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_in
      
 	memcpy( UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index], &typeandinfo->choice.sib5, sizeof(SystemInformationBlockType5_t) );
 	LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB5 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index );
+	dump_sib5(UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index]);
       }
       break;
 
diff --git a/openair2/RRC/LITE/rrc_common.c b/openair2/RRC/LITE/rrc_common.c
index bf86d9024ee5d25f84574497319c3b31c6ec9dc3..1d0e855a824b31e43b3b8cb89ffe52f0d3e2629a 100644
--- a/openair2/RRC/LITE/rrc_common.c
+++ b/openair2/RRC/LITE/rrc_common.c
@@ -442,17 +442,19 @@ rrc_rx_tx(
       UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt++;
     }
 
-    if (UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]) {
+    if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].SIStatus&2)>0) {
       if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt
           == N310[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.n310]) {
+	LOG_I(RRC,"Activating T310\n");
         UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 1;
       }
     } else { // in case we have not received SIB2 yet
-      if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt == 100) {
+      /*      if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt == 100) {
         UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt = 0;
-        VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT);
-        return RRC_PHY_RESYNCH;
-      }
+
+	}*/
+      VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT);
+      return RRC_OK;
     }
 
     if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active == 1) {
@@ -470,7 +472,8 @@ rrc_rx_tx(
         UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 0;
         rrc_t310_expiration (ctxt_pP, enb_indexP);
         VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT);
-        return (RRC_PHY_RESYNCH);
+	LOG_I(RRC,"Returning RRC_PHY_RESYNCH: T310 expired\n"); 
+        return RRC_PHY_RESYNCH;
       }
 
       UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt++;