diff --git a/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c b/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
index 80d6d13d9e2de0eb4ee027ae5e13f87790ee0a3e..cb395ff4aff5850306c85a728bef4aaeb9e1c405 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
@@ -328,8 +328,7 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
   uint16_t nb_rb = rel15->rbSize;
   uint8_t nb_symb_sch = rel15->NrOfSymbols;
   uint32_t A, Kb, F=0;
-  static uint32_t Z = 0;
-  uint32_t *Zc = &Z;
+  uint32_t *Zc = &dlsch->harq_processes[harq_pid]->Z;
   uint8_t mod_order = rel15->qamModOrder[0];
   uint16_t Kr=0,r;
   uint32_t r_offset=0;
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
index a3e202d4fee38c262dafc023228a0d6aadd4eaaf..90f39badfc676dd38b23be88ea433eb891e27ef5 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
@@ -141,6 +141,8 @@ typedef struct {
   uint8_t decode_phich;
   // Encoder BG
   uint8_t BG;
+  // LDPC lifting size
+  uint32_t Z;
 } NR_UL_UE_HARQ_t;
 
 typedef struct {
diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
index fdd40feebaf4e0b3c39820a2fad086d20afaf583..6c0881c56478f212bf0e12b8a1bdbc5076fa550c 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
@@ -227,8 +227,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
   NR_UL_UE_HARQ_t *harq_process; 
   uint16_t nb_rb ;
   uint32_t A, F;
-  static uint32_t Z = 0;
-  uint32_t *pz = &Z; 
+  uint32_t *pz; 
   uint8_t mod_order; 
   uint16_t Kr,r;
   uint32_t r_offset;
@@ -249,7 +248,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
   harq_process = ulsch->harq_processes[harq_pid];
   nb_rb = harq_process->pusch_pdu.rb_size;
   A = harq_process->pusch_pdu.pusch_data.tb_size*8;
-  pz = &Z;
+  pz = &harq_process->Z;
   mod_order = nr_get_Qm_ul(harq_process->pusch_pdu.mcs_index, harq_process->pusch_pdu.mcs_table);
   R = nr_get_code_rate_ul(harq_process->pusch_pdu.mcs_index, harq_process->pusch_pdu.mcs_table);
   Kr=0;
diff --git a/openair1/PHY/defs_gNB.h b/openair1/PHY/defs_gNB.h
index b6ffd06c2ba9ee09881233f393e6110d3c31f368..366ac7d178b63ea10398cf2dfa136f260ca066fa 100644
--- a/openair1/PHY/defs_gNB.h
+++ b/openair1/PHY/defs_gNB.h
@@ -112,6 +112,8 @@ typedef struct {
   uint32_t F;
   /// Encoder BG
   uint8_t BG;
+  /// LDPC lifting size
+  uint32_t Z;
 } NR_DL_gNB_HARQ_t;
 
 typedef struct {