diff --git a/common/utils/threadPool/thread-pool.h b/common/utils/threadPool/thread-pool.h
index 0ed8715811e1e7345d0600e7b332a176ff20a9d5..4ec0f5768cfb4d0a069576809182115621b5b6b6 100644
--- a/common/utils/threadPool/thread-pool.h
+++ b/common/utils/threadPool/thread-pool.h
@@ -236,7 +236,6 @@ static inline void pushTpool(tpool_t *t, notifiedFIFO_elt_t *msg) {
 
 static inline notifiedFIFO_elt_t *pullTpool(notifiedFIFO_t *responseFifo, tpool_t *t) {
   notifiedFIFO_elt_t *msg= pullNotifiedFIFO(responseFifo);
-  AssertFatal(t->traceFd, "Thread pool used while not initialized");
   if (t->measurePerf)
     msg->returnTime=rdtsc();
 
@@ -248,7 +247,6 @@ static inline notifiedFIFO_elt_t *pullTpool(notifiedFIFO_t *responseFifo, tpool_
 
 static inline notifiedFIFO_elt_t *tryPullTpool(notifiedFIFO_t *responseFifo, tpool_t *t) {
   notifiedFIFO_elt_t *msg= pollNotifiedFIFO(responseFifo);
-  AssertFatal(t->traceFd, "Thread pool used while not initialized");
   if (msg == NULL)
     return NULL;
 
diff --git a/executables/nr-uesoftmodem.c b/executables/nr-uesoftmodem.c
index d96bc16d3576d7118bc14580ab9ce4a047fe3663..55bf0a91148038fc21f7c60a95e9ce61a4ee4e2a 100644
--- a/executables/nr-uesoftmodem.c
+++ b/executables/nr-uesoftmodem.c
@@ -98,9 +98,7 @@ pthread_mutex_t sync_mutex;
 int sync_var=-1; //!< protected by mutex \ref sync_mutex.
 int config_sync_var=-1;
 tpool_t *Tpool;
-#ifdef UE_DLSCH_PARALLELISATION
-  tpool_t *Tpool_dl;
-#endif
+tpool_t *Tpool_dl;
 
 RAN_CONTEXT_t RC;
 volatile int             start_eNB = 0;
@@ -208,6 +206,14 @@ void exit_function(const char *file, const char *function, const int line, const
   exit(1);
 }
 
+uint64_t get_nrUE_optmask(void) {
+  return nrUE_params.optmask;
+}
+
+uint64_t set_nrUE_optmask(uint64_t bitmask) {
+  nrUE_params.optmask = nrUE_params.optmask | bitmask;
+  return nrUE_params.optmask;
+}
 
 nrUE_params_t *get_nrUE_params(void) {
   return &nrUE_params;
@@ -243,6 +249,8 @@ static void get_options(void) {
   if ((cmdline_uemodeparams[CMDLINE_DUMPMEMORY_IDX].paramflags & PARAMFLAG_PARAMSET) != 0)
     mode = rx_dump_frame;
 
+  if (nr_dlsch_parallel) 
+  	set_nrUE_optmask(NRUE_DLSCH_PARALLEL_BIT);
   if (vcdflag > 0)
     ouput_vcd = 1;
 
@@ -475,6 +483,7 @@ int main( int argc, char **argv ) {
   get_options (); //Command-line options specific for NRUE
 
   get_common_options(SOFTMODEM_5GUE_BIT );
+  CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP);
 #if T_TRACER
   T_Config_Init();
 #endif
@@ -553,8 +562,9 @@ int main( int argc, char **argv ) {
     PHY_vars_UE_g[0][CC_id]->rf_map.chain=CC_id+chain_offset;
     PHY_vars_UE_g[0][CC_id]->timing_advance = timing_advance;
   }
-
+  
   init_NR_UE_threads(1);
+  config_check_unknown_cmdlineopt(CONFIG_CHECKALLSECTIONS);
   printf("UE threads created by %ld\n", gettid());
   
   // wait for end of program
diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c
index 9db741fae92801e530f8c2c8a8fc696481c654bd..49ec60c94beceffcf324f613ebb84a7798f21958 100644
--- a/openair1/PHY/INIT/nr_init.c
+++ b/openair1/PHY/INIT/nr_init.c
@@ -19,6 +19,7 @@
  *      contact@openairinterface.org
  */
 
+#include "executables/nr-softmodem-common.h"
 #include "PHY/defs_gNB.h"
 #include "PHY/phy_extern.h"
 #include "PHY/NR_REFSIG/nr_refsig.h"
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
index 9a15bed1fd518e5c2c3622c9473aa45186e6a0a0..9c87cf26d5f5c791f8aa28eca756abed02148d4c 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
@@ -810,7 +810,7 @@ uint32_t  nr_dlsch_decoding_mthread(PHY_VARS_NR_UE *phy_vars_ue,
   else
     nb_re_dmrs = 4*harq_process->n_dmrs_cdm_groups;
 
-  uint16_t length_dmrs = get_num_dmrs(dl_config_pdu->dlDmrsSymbPos); 
+  uint16_t length_dmrs = get_num_dmrs(harq_process->dlDmrsSymbPos); 
   
   uint32_t i,j;
 
@@ -1397,7 +1397,6 @@ void nr_dlsch_decoding_process(void *arg)
   int harq_pid              = proc->harq_pid;
   llr8_flag1                = proc->llr8_flag;
   int frame                 = proc->frame_rx;
-  int slot                  = proc->nr_slot_rx;
   r               	    = proc->num_seg;
 
   NR_UE_DLSCH_t *dlsch      = phy_vars_ue->dlsch[proc->thread_id][eNB_id][0];
diff --git a/openair1/PHY/TOOLS/nr_phy_scope.c b/openair1/PHY/TOOLS/nr_phy_scope.c
index ba53e0b98faff1daf1c5b45c7c185a75db67bee5..b11c163ae84cd4e12fce6586c3c6ec448dcb8d6c 100644
--- a/openair1/PHY/TOOLS/nr_phy_scope.c
+++ b/openair1/PHY/TOOLS/nr_phy_scope.c
@@ -26,6 +26,7 @@
 #include <stdlib.h>
 #include "nr_phy_scope.h"
 #include "executables/softmodem-common.h"
+#include "executables/nr-softmodem-common.h"
 #include <forms.h>
 
 #define TPUT_WINDOW_LENGTH 100
diff --git a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
index 4009dae6eb1d7ad79799c65efeb6efff4b404412..32e9bff5b418388d996700e64886e1447f0ef82a 100644
--- a/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+++ b/openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
@@ -1146,7 +1146,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
                                      dlsch1->harq_processes[harq_pid],
                                      frame_rx,
                                      nb_symb_sch,
-                                     nr_tti_rx,
+				     nr_slot_rx,
                                      harq_pid,
                                      pdsch==PDSCH?1:0,
                                      dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
@@ -1163,7 +1163,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
                              dlsch1->harq_processes[harq_pid],
                              frame_rx,
                              nb_symb_sch,
-                             nr_tti_rx,
+                             nr_slot_rx,
                              harq_pid,
                              pdsch==PDSCH?1:0,//proc->decoder_switch,
                              dlsch1->harq_processes[harq_pid]->TBS>256?1:0);