diff --git a/openair1/PHY/MODULATION/nr_modulation.c b/openair1/PHY/MODULATION/nr_modulation.c
index 3643264c8758e4a07ac815ca05aef57f4ea6697c..57bca9e2ec1e259e1b82699ad1951bb57b0a6d29 100644
--- a/openair1/PHY/MODULATION/nr_modulation.c
+++ b/openair1/PHY/MODULATION/nr_modulation.c
@@ -24,7 +24,7 @@
 extern short nr_mod_table[NR_MOD_TABLE_SIZE_SHORT];
 
 void nr_modulation(uint32_t *in,
-                   uint16_t length,
+                   uint32_t length,
                    uint16_t mod_order,
                    int16_t *out)
 {
diff --git a/openair1/PHY/MODULATION/nr_modulation.h b/openair1/PHY/MODULATION/nr_modulation.h
index 3b37d8e7694ca5029da5eab59b73b545ac94cb69..8a6abd5de5a93d5ee650528552c446d89294a201 100644
--- a/openair1/PHY/MODULATION/nr_modulation.h
+++ b/openair1/PHY/MODULATION/nr_modulation.h
@@ -37,7 +37,7 @@
 */
 
 void nr_modulation(uint32_t *in,
-                   uint16_t length,
+                   uint32_t length,
                    uint16_t mod_order,
                    int16_t *out);
 
@@ -93,4 +93,4 @@ int nr_slot_fep_ul(NR_DL_FRAME_PARMS *frame_parms,
 */
 void nr_dft(int32_t *z,int32_t *d, uint32_t Msc_PUSCH);
 
-#endif
\ No newline at end of file
+#endif
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.c b/openair1/PHY/NR_TRANSPORT/nr_dci.c
index 2ac7823d458047716120fdbeace2edf7cc00e775..6b891339135ab49b5c5ece6223cab45c8d95993d 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci.c
@@ -130,7 +130,7 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
 }
 
 void nr_pdcch_scrambling(uint32_t *in,
-                         uint16_t size,
+                         uint32_t size,
                          uint32_t Nid,
                          uint32_t n_RNTI,
                          uint32_t *out) {
@@ -187,9 +187,9 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
   dci_idx = 0;
   LOG_D(PHY, "Coreset starting subcarrier %d on symbol %d (%d symbols)\n", cset_start_sc, cset_start_symb, cset_nsymb);
   // DMRS length is per OFDM symbol
-  uint16_t dmrs_length = (pdcch_params.precoder_granularity == NFAPI_NR_CSET_ALL_CONTIGUOUS_RBS)?
+  uint32_t dmrs_length = (pdcch_params.precoder_granularity == NFAPI_NR_CSET_ALL_CONTIGUOUS_RBS)?
                          (pdcch_params.n_rb*6) : (dci_alloc.L*36/cset_nsymb); //2(QPSK)*3(per RB)*6(REG per CCE)
-  uint16_t encoded_length = dci_alloc.L*108; //2(QPSK)*9(per RB)*6(REG per CCE)
+  uint32_t encoded_length = dci_alloc.L*108; //2(QPSK)*9(per RB)*6(REG per CCE)
   LOG_D(PHY, "DMRS length per symbol %d\t DCI encoded length %d\n", dmrs_length, encoded_length);
   dmrs_length += pdcch_params.rb_offset*6; // To accommodate more DMRS symbols in case of rb offset
 
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci.h b/openair1/PHY/NR_TRANSPORT/nr_dci.h
index f246eaf18e2e210bd754cd5f34c675b4d85b223f..71f8dc561770501f8ce88fddff9040b14ef0f65c 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dci.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_dci.h
@@ -38,7 +38,7 @@ uint8_t nr_generate_dci_top(NR_gNB_PDCCH pdcch_vars,
                             nfapi_nr_config_request_t config);
 
 void nr_pdcch_scrambling(uint32_t *in,
-                         uint16_t size,
+                         uint32_t size,
                          uint32_t Nid,
                          uint32_t n_RNTI,
                          uint32_t *out);
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dlsch.c b/openair1/PHY/NR_TRANSPORT/nr_dlsch.c
index 6c938349d8782f9c5e07bb14be53e9bc811e709f..665e9a690cfad491357cc4483347ca785275d8d9 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dlsch.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dlsch.c
@@ -39,11 +39,11 @@
 //#define DEBUG_DLSCH_MAPPING
 
 void nr_pdsch_codeword_scrambling(uint8_t *in,
-                         uint16_t size,
-                         uint8_t q,
-                         uint32_t Nid,
-                         uint32_t n_RNTI,
-                         uint32_t* out) {
+                                  uint32_t size,
+                                  uint8_t q,
+                                  uint32_t Nid,
+                                  uint32_t n_RNTI,
+                                  uint32_t* out) {
 
   uint8_t reset, b_idx;
   uint32_t x1, x2, s=0;
@@ -88,7 +88,7 @@ uint8_t nr_generate_pdsch(NR_gNB_DLSCH_t *dlsch,
   int8_t Wf[2], Wt[2], l0, l_prime[2], delta;
   uint16_t nb_symbols = rel15->nb_mod_symbols;
   uint8_t Qm = rel15->modulation_order;
-  uint16_t encoded_length = nb_symbols*Qm;
+  uint32_t encoded_length = nb_symbols*Qm;
 
   /// CRC, coding, interleaving and rate matching
   AssertFatal(harq->pdu!=NULL,"harq->pdu is null\n");
@@ -121,11 +121,12 @@ printf("\n");
   pdcch_params.scrambling_id : config->sch_config.physical_cell_id.value;
   for (int q=0; q<rel15->nb_codewords; q++)
     nr_pdsch_codeword_scrambling(harq->f,
-                         encoded_length,
-                         q,
-                         Nid,
-                         n_RNTI,
-                         scrambled_output[q]);
+                                 encoded_length,
+                                 q,
+                                 Nid,
+                                 n_RNTI,
+                                 scrambled_output[q]);
+
   stop_meas(dlsch_scrambling_stats);
 #ifdef DEBUG_DLSCH
 printf("PDSCH scrambling:\n");
diff --git a/openair1/PHY/NR_TRANSPORT/nr_dlsch.h b/openair1/PHY/NR_TRANSPORT/nr_dlsch.h
index 3419be30faa9f5e5eeaf21924e5e65350ad3462d..d982a17ea72f8aa5ac6d4504269e295817223608 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dlsch.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_dlsch.h
@@ -54,11 +54,11 @@ void nr_get_rbg_list(uint32_t bitmap, uint8_t n_rbg, uint8_t* rbg_list);
 void nr_get_PRG_parms(NR_BWP_PARMS* bwp, NR_gNB_DCI_ALLOC_t dci_alloc, uint8_t prb_bundling_type);
 
 void nr_pdsch_codeword_scrambling(uint8_t *in,
-                         uint16_t size,
-                         uint8_t q,
-                         uint32_t Nid,
-                         uint32_t n_RNTI,
-                         uint32_t* out);
+                                  uint32_t size,
+                                  uint8_t q,
+                                  uint32_t Nid,
+                                  uint32_t n_RNTI,
+                                  uint32_t* out);
 
 void nr_fill_dlsch(PHY_VARS_gNB *gNB,
                    int frame,
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
index 6c14aa8b56879138b9b51d47e17107d904cf27bc..7559115a290c4a6760a00dba7589ed63bd6df192 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
@@ -1064,7 +1064,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
 */
 
 void nr_pusch_codeword_scrambling(uint8_t *in,
-                         uint16_t size,
+                         uint32_t size,
                          uint32_t Nid,
                          uint32_t n_RNTI,
                          uint32_t* out);
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
index 7429e16b1fc740bd6e3f90d5e1261a3517c0b126..f8c9c83e78c7cd820bc62833a6728849fe2d42e8 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
@@ -46,7 +46,7 @@
 //#define DEBUG_PUSCH_MAPPING
 
 void nr_pusch_codeword_scrambling(uint8_t *in,
-                         uint16_t size,
+                         uint32_t size,
                          uint32_t Nid,
                          uint32_t n_RNTI,
                          uint32_t* out) {
@@ -90,7 +90,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
                                uint8_t thread_id,
                                int gNB_id) {
 
-  unsigned int available_bits;
+  uint32_t available_bits;
   uint8_t mod_order, cwd_index, num_of_codewords;
   uint32_t scrambled_output[NR_MAX_NB_CODEWORDS][NR_MAX_PDSCH_ENCODED_LENGTH>>5];
   uint32_t ***pusch_dmrs;