diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index 8a011795675291d117f4b9f437584594f86ee9cf..fb2271fa72f741f21c219421171bf461e46cec0a 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -128,7 +128,7 @@ extern pthread_cond_t sync_cond;
 extern pthread_mutex_t sync_mutex;
 extern int sync_var;
 
-extern transmission_mode;
+extern int transmission_mode;
 
 //pthread_t                       main_eNB_thread;
 
@@ -1010,7 +1010,7 @@ void rx_fh_if4p5(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
 
   uint16_t packet_type;
   uint32_t symbol_number=0;
-  uint32_t symbol_mask, symbol_mask_full;
+  uint32_t symbol_mask_full;
 
   symbol_mask_full = (1<<fp->symbols_per_tti)-1;
 
@@ -1258,6 +1258,7 @@ void *eNB_thread_synch(void *arg) {
 
   lte_sync_time_free();
 
+  return NULL;
 }
 
 int wakeup_synch(PHY_VARS_eNB *eNB){
@@ -1486,6 +1487,10 @@ static void* eNB_thread_single( void* param ) {
 					rxp,
 					fp->samples_per_tti*10,
 					fp->nb_antennas_rx);
+
+      if (rxs != (fp->samples_per_tti*10))
+	exit_fun("Problem receiving samples\n");
+
       // wakeup synchronization processing thread
       wakeup_synch(eNB);
       ic=0;
@@ -1502,6 +1507,9 @@ static void* eNB_thread_single( void* param ) {
 					    rxp2,
 					    fp->samples_per_tti,
 					    fp->nb_antennas_rx);
+	if (rxs != fp->samples_per_tti)
+	  exit_fun( "problem receiving samples" );
+
 	pthread_mutex_lock(&eNB->proc.mutex_synch);
 	ic = eNB->proc.instance_cnt_synch;
 	pthread_mutex_unlock(&eNB->proc.mutex_synch);
@@ -1514,6 +1522,9 @@ static void* eNB_thread_single( void* param ) {
 				      rxp,
 				      eNB->rx_offset,
 				      fp->nb_antennas_rx);
+    if (rxs != eNB->rx_offset)
+      exit_fun( "problem receiving samples" );
+
     for (i=0;i<4;i++) {
       eNB->rfdevice.openair0_cfg->rx_freq[i] = temp_freq1;
       eNB->rfdevice.openair0_cfg->tx_freq[i] = temp_freq2;
@@ -1876,7 +1887,7 @@ int start_rf(PHY_VARS_eNB *eNB) {
   return(eNB->rfdevice.trx_start_func(&eNB->rfdevice));
 }
 
-extern void eNB_fep_rru_if5(PHY_VARS_eNB *eNB);
+extern void eNB_fep_rru_if5(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc);
 extern void eNB_fep_full(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc);
 extern void eNB_fep_full_2thread(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc);
 extern void do_prach(PHY_VARS_eNB *eNB,int frame,int subframe);
@@ -1964,7 +1975,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
 
 	break;
       case eNodeB_3GPP:
-	eNB->do_precoding         = (eNB->frame_parms.nb_antenna_ports_eNB==1) ? 0 : 1;
+	eNB->do_precoding         = (eNB->frame_parms.nb_antennas_tx==1) ? 0 : 1;
 	eNB->do_prach             = do_prach;
 	eNB->fep                  = eNB_fep_full;//(single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
 	eNB->td                   = ulsch_decoding_data;//(single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
@@ -1985,7 +1996,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
 	eNB->ifdevice.host_type   = BBU_HOST;
 	break;
       case eNodeB_3GPP_BBU:
-	eNB->do_precoding         = (eNB->frame_parms.nb_antenna_ports_eNB==1) ? 0 : 1;
+	eNB->do_precoding         = (eNB->frame_parms.nb_antennas_tx==1) ? 0 : 1;
 	eNB->do_prach             = do_prach;
 	eNB->fep                  = eNB_fep_full;//(single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
 	eNB->td                   = ulsch_decoding_data;//(single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;