diff --git a/openair1/SCHED/phy_procedures_lte_ue.c b/openair1/SCHED/phy_procedures_lte_ue.c
index 7dcd71ce472b982b823b5f91751e17063f5850a6..2929cf163e166241c7c93b3920f66c0892b4a396 100755
--- a/openair1/SCHED/phy_procedures_lte_ue.c
+++ b/openair1/SCHED/phy_procedures_lte_ue.c
@@ -2232,10 +2232,10 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
 
     else if ((phy_vars_ue->prach_resources[eNB_id]) &&
              (dci_alloc_rx[i].rnti == phy_vars_ue->prach_resources[eNB_id]->ra_RNTI) &&
-             (dci_alloc_rx[i].format == format1A)) {
+             (dci_alloc_rx[i].format == format1A || dci_alloc_rx[i].format == format1C)) {
 
 #ifdef DEBUG_PHY_PROC
-      LOG_D(PHY,"[UE  %d][RAPROC] subframe %d: Found RA rnti %x, format 1A, dci_cnt %d\n",phy_vars_ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,i);
+      LOG_D(PHY,"[UE  %d][RAPROC] subframe %d: Found RA rnti %x, format 1%s, dci_cnt %d\n",phy_vars_ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
 
       //if (((frame_rx%100) == 0) || (frame_rx < 20))
       //dump_dci(&phy_vars_ue->lte_frame_parms, &dci_alloc_rx[i]);
@@ -2255,9 +2255,9 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
 
       if (generate_ue_dlsch_params_from_dci(frame_rx,
 					    subframe_rx,
-                                            (DCI1A_5MHz_TDD_1_6_t *)&dci_alloc_rx[i].dci_pdu,
+					    (void*)&dci_alloc_rx[i].dci_pdu,//(DCI1A_5MHz_TDD_1_6_t *)&dci_alloc_rx[i].dci_pdu,
                                             phy_vars_ue->prach_resources[eNB_id]->ra_RNTI,
-                                            format1A,
+					    dci_alloc_rx[i].format, //format1A,
                                             &phy_vars_ue->dlsch_ue_ra[eNB_id],
                                             &phy_vars_ue->lte_frame_parms,
                                             phy_vars_ue->pdsch_config_dedicated,
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index b96a7ae5292099fd5bc964e57b2a89e2502699be..a3d29c43efb65a224392a2da204560f7c894cf6d 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -21,7 +21,7 @@
    Contact Information
    OpenAirInterface Admin: openair_admin@eurecom.fr
    OpenAirInterface Tech : openair_tech@eurecom.fr
-   OpenAirInterface Dev  : openair4g-devel@lists.eurecom.fr
+   OpenAirInterface Dev  : openair4g-devel@eurecom.fr
 
    Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
 
@@ -318,6 +318,7 @@ static LTE_DL_FRAME_PARMS      *frame_parms[MAX_NUM_CCs];
 int multi_thread=1;
 uint32_t target_dl_mcs = 28; //maximum allowed mcs
 uint32_t target_ul_mcs = 10;
+uint32_t timing_advance = 0;
 uint8_t exit_missed_slots=1;
 uint64_t num_missed_slots=0; // counter for the number of missed slots
 
@@ -2042,7 +2043,7 @@ static void get_options (int argc, char **argv)
     {NULL, 0, NULL, 0}
   };
 
-  while ((c = getopt_long (argc, argv, "C:dK:g:F:G:hqO:m:SUVRM:r:P:Ws:t:x:",long_options,NULL)) != -1) {
+  while ((c = getopt_long (argc, argv, "C:dK:g:F:G:hqO:m:SUVRM:r:P:Ws:t:x:A:",long_options,NULL)) != -1) {
     switch (c) {
     case LONG_OPTION_MAXPOWER:
       tx_max_power[0]=atoi(optarg);
@@ -2117,6 +2118,10 @@ static void get_options (int argc, char **argv)
 #endif
       break;
 
+    case 'A':
+      timing_advance = atoi (optarg);
+      break;
+
     case 'C':
       for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
         downlink_frequency[CC_id][0] = atof(optarg); // Use float to avoid issue with frequency over 2^31.
@@ -2991,7 +2996,23 @@ openair0_cfg[card].num_rb_dl=frame_parms[0]->N_RB_DL;
 
   openair0.func_type = BBU_FUNC;
   openair0_cfg[0].log_level = glog_level;
-
+  
+#ifdef ETHERNET 
+  openair0.type=ETH_IF; // not used for the moment
+  openair0.func_type = BBU_FUNC;
+  openair0_dev_init_eth(&openair0, &openair0_cfg[0]);
+#else 
+#ifdef EXMIMO
+  openair0.type=EXMIMO_IF;
+  printf("Setting the HW to EXMIMO and initializing openair0 ...\n");
+#elif OAI_USRP
+  openair0.type=USRP_IF;
+  printf("Setting the HW to USRP and initializing openair0 ...\n");
+#elif OAI_BLADERF  
+  openair0.type=BLADERF_IF;	
+  printf("Setting the HW to BLADERF and initializing openair0 ...\n");   
+#endif 
+ 
   if ((mode!=loop_through_memory) && 
       (openair0_device_init(&openair0, &openair0_cfg[0]) <0)) {
     printf("Exiting, cannot initialize device\n");
@@ -2999,7 +3020,8 @@ openair0_cfg[card].num_rb_dl=frame_parms[0]->N_RB_DL;
   }
   else if (mode==loop_through_memory) {    
   }
- 
+#endif 
+
   printf("Done\n");
 
   mac_xface = malloc(sizeof(MAC_xface));
@@ -3070,7 +3092,7 @@ openair0_cfg[card].num_rb_dl=frame_parms[0]->N_RB_DL;
   // connect the TX/RX buffers
   if (UE_flag==1) {
 #ifdef OAI_USRP
-    openair_daq_vars.timing_advance = 160;
+    openair_daq_vars.timing_advance = timing_advance;
 #else
     openair_daq_vars.timing_advance = 160;
 #endif