diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index c3e29a7d434fdaf5c84a9e5fa2e254ed7bcf79e4..7723d32e1bae12f1b3926c26de3bc608cde426a6 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -2002,6 +2002,7 @@ static void get_options (int argc, char **argv)
       break;
 
     case 'r':
+      UE_scan = 0;
       for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
         switch(atoi(optarg)) {
         case 6:
@@ -2251,11 +2252,11 @@ int main( int argc, char **argv )
   for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
     frame_parms[CC_id] = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS));
     /* Set some default values that may be overwritten while reading options */
-    frame_parms[CC_id]->frame_type         = TDD; /* TDD */
+    frame_parms[CC_id]->frame_type         = FDD; /* TDD */
     frame_parms[CC_id]->tdd_config          = 3;
     frame_parms[CC_id]->tdd_config_S        = 0;
-    frame_parms[CC_id]->N_RB_DL             = 25;
-    frame_parms[CC_id]->N_RB_UL             = 25;
+    frame_parms[CC_id]->N_RB_DL             = 100;
+    frame_parms[CC_id]->N_RB_UL             = 100;
     frame_parms[CC_id]->Ncp                 = NORMAL;
     frame_parms[CC_id]->Ncp_UL              = NORMAL;
     frame_parms[CC_id]->Nid_cell            = Nid_cell;
@@ -2272,6 +2273,14 @@ int main( int argc, char **argv )
   set_taus_seed (0);
 
 
+  for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
+    downlink_frequency[CC_id][0] = 2680000000; // Use float to avoid issue with frequency over 2^31.
+    downlink_frequency[CC_id][1] = downlink_frequency[CC_id][0];
+    downlink_frequency[CC_id][2] = downlink_frequency[CC_id][0];
+    downlink_frequency[CC_id][3] = downlink_frequency[CC_id][0];
+    printf("Downlink for CC_id %d frequency set to %u\n", CC_id, downlink_frequency[CC_id][0]);
+  }
+
   get_options (argc, argv); //Command-line options
   set_glog(glog_level, glog_verbosity);
 
@@ -2736,10 +2745,6 @@ int main( int argc, char **argv )
           0,// cba_group_active
           0); // HO flag
 
-  if (UE_flag == 1)
-    mac_xface->dl_phy_sync_success (0, 0, 0, 1);
-  else
-    mac_xface->mrbch_phy_sync_failure (0, 0, 0);
 
 #endif
 
@@ -2756,11 +2761,15 @@ int main( int argc, char **argv )
 #endif
 
 #ifdef OPENAIR2
+
   printf("Filling UE band info\n");
 
-  if (UE_flag==1)
+  if (UE_flag==1) {
     fill_ue_band_info();
-
+    mac_xface->dl_phy_sync_success (0, 0, 0, 1);
+  }
+  else
+    mac_xface->mrbch_phy_sync_failure (0, 0, 0);
 #endif
 
   /* #ifdef OPENAIR2
diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c
index 347452ff8c60b1dc9cd66450e84a319ce7388c2c..f631582e2fff8ad05fb1044668a84fbd5acf1050 100644
--- a/targets/RT/USER/lte-ue.c
+++ b/targets/RT/USER/lte-ue.c
@@ -233,29 +233,32 @@ static void *UE_thread_synch(void *arg)
   found = 0;
   current_band = eutra_bands[ind].band;
 
-  do  {
-    printf("Scanning band %d, dl_min %u\n",current_band,eutra_bands[ind].dl_min);
 
-    if ((eutra_bands[ind].dl_min <= downlink_frequency[0][0]) && (eutra_bands[ind].dl_max>= downlink_frequency[0][0])) {
-      for (card=0; card<MAX_NUM_CCs; card++)
-        for (i=0; i<4; i++)
-          uplink_frequency_offset[card][i] = eutra_bands[ind].ul_min - eutra_bands[ind].dl_min;
+  if (UE->UE_scan == 0) {
+    do  {
+      printf("Scanning band %d, dl_min %u\n",current_band,eutra_bands[ind].dl_min);
 
-      found = 1;
-      break;
-    }
+      if ((eutra_bands[ind].dl_min <= downlink_frequency[0][0]) && (eutra_bands[ind].dl_max>= downlink_frequency[0][0])) {
+        for (card=0; card<MAX_NUM_CCs; card++)
+          for (i=0; i<4; i++)
+            uplink_frequency_offset[card][i] = eutra_bands[ind].ul_min - eutra_bands[ind].dl_min;
 
-    ind++;
-    current_band = eutra_bands[ind].band;
-  } while (current_band < 44);
+        found = 1;
+        break;
+      }
 
-  if (found == 0) {
-    exit_fun("Can't find EUTRA band for frequency");
-    oai_exit=1;
-  }
+      ind++;
+      current_band = eutra_bands[ind].band;
+    } while (current_band < 44);
 
+    if (found == 0) {
+      exit_fun("Can't find EUTRA band for frequency");
+      oai_exit=1;
+    }
+  }
 
-  if  (UE->UE_scan == 1) {
+  else if  (UE->UE_scan == 1) {
+    current_band=0;
     for (card=0; card<MAX_CARDS; card++) {
       for (i=0; i<openair0_cfg[card].rx_num_channels; i++) {
         downlink_frequency[card][i] = bands_to_scan.band_info[0].dl_min;
@@ -299,7 +302,7 @@ static void *UE_thread_synch(void *arg)
     openair0_set_gains(&openair0,&openair0_cfg[0]);
 #endif
 #endif
-    LOG_D(PHY,"[SCHED][UE] Scanning band %d, freq %u\n",bands_to_scan.band_info[0].band, bands_to_scan.band_info[0].dl_min);
+
   } else {
     LOG_D(PHY,"[SCHED][UE] Check absolute frequency %u (oai_exit %d)\n",downlink_frequency[0][0],oai_exit);
 
@@ -329,6 +332,8 @@ static void *UE_thread_synch(void *arg)
     switch (sync_mode) {
     case pss:
 
+      LOG_I(PHY,"[SCHED][UE] Scanning band %d (%d), freq %u\n",bands_to_scan.band_info[current_band].band, current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
+      lte_sync_timefreq(UE,current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
 
 
       current_offset += 20000000; // increase by 20 MHz
@@ -375,7 +380,7 @@ static void *UE_thread_synch(void *arg)
           printf("UE synch: setting RX gain (%d,%d) to %f\n",card,i,openair0_cfg[card].rx_gain[i]);
 #endif
 
-        }
+  }
 
 #ifdef EXMIMO
         //openair0_config(&openair0_cfg[card],1);
@@ -388,6 +393,7 @@ static void *UE_thread_synch(void *arg)
       //  openair0_set_gains(&openair0,&openair0_cfg[0]);
 #endif
 #endif
+
       break;
 
     case pbch:
@@ -499,7 +505,6 @@ static void *UE_thread_synch(void *arg)
     default:
       break;
     }
-
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SYNCH,0);
 
     if (pthread_mutex_lock(&UE->mutex_synch) != 0) {
@@ -1012,7 +1017,7 @@ void *UE_thread(void *arg)
                       UE->PHY_measurements.rx_power_avg_dB[0] - rx_input_level_dBm,
                       UE->rx_total_gain_dB,
                       openair0_cfg[0].rx_gain[0]
-                     );
+		      );
                 exit_fun("[HW][UE] UE in RX calibration mode, exiting");
               }
             }
@@ -1378,7 +1383,7 @@ void *UE_thread(void *arg)
                       UE->PHY_measurements.rx_power_avg_dB[0] - rx_input_level_dBm,
                       UE->rx_total_gain_dB,
                       openair0_cfg[0].rx_gain[0]
-                     );
+		      );
                 exit_fun("[HW][UE] UE in RX calibration mode, exiting");
               }
             }
@@ -1414,8 +1419,8 @@ void *UE_thread(void *arg)
       }
 
       /*
-      if ((slot%2000)<10)
-      LOG_D(HW,"fun0: doing very hard work\n");
+	if ((slot%2000)<10)
+	LOG_D(HW,"fun0: doing very hard work\n");
       */
       // now increment slot and frame counters
       slot++;