diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
index 8361d55baf128afc4214503749326bed1d7630d2..0048ea73ff4235ebf1fd5d2abbf03c63f7df6299 100644
--- a/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+++ b/openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
@@ -386,7 +386,7 @@ void nr_pbch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
 }
 
 void nr_pbch_unscrambling(NR_DL_FRAME_PARMS *frame_parms,
-                       int8_t* llr,
+                       uint8_t* pbch_a,
                        uint32_t length)
 {
   int i;
@@ -406,7 +406,7 @@ void nr_pbch_unscrambling(NR_DL_FRAME_PARMS *frame_parms,
     }
 
     if (((s>>(i%32))&1)==0)
-      llr[i] = -llr[i];
+      pbch_a[i] = -pbch_a[i];
   }
 }
 
@@ -496,7 +496,7 @@ uint16_t nr_rx_pbch( PHY_VARS_NR_UE *ue,
   pbch_e_rx = &nr_ue_pbch_vars->llr[0];
 
   // clear LLR buffer
-  memset(nr_ue_pbch_vars->llr,0,NR_POLAR_PBCH_PAYLOAD_BITS);
+  memset(nr_ue_pbch_vars->llr,0,NR_POLAR_PBCH_E);
 
   for (symbol=1; symbol<4; symbol++) {
 
@@ -549,9 +549,9 @@ uint16_t nr_rx_pbch( PHY_VARS_NR_UE *ue,
     if (symbol==2) {
       nr_pbch_quantize(pbch_e_rx,
                     (short*)&(nr_ue_pbch_vars->rxdataF_comp[0][symbol*240]),
-                    108);
+                    144);
 
-      pbch_e_rx+=108;
+      pbch_e_rx+=144;
     } else {
       nr_pbch_quantize(pbch_e_rx,
                     (short*)&(nr_ue_pbch_vars->rxdataF_comp[0][symbol*240]),
@@ -574,7 +574,7 @@ uint16_t nr_rx_pbch( PHY_VARS_NR_UE *ue,
   //#endif
 
   //polar decoding de-rate matching
-  decoderState = polar_decoder(pbch_e_rx, pbch_a, &frame_parms->pbch_polar_params, decoderListSize, aPrioriArray, pathMetricAppr);
+  decoderState = polar_decoder((double *)pbch_e_rx, pbch_a, &frame_parms->pbch_polar_params, decoderListSize, aPrioriArray, pathMetricAppr);
 
   memset(pbch_a,0,((16+NR_POLAR_PBCH_PAYLOAD_BITS)>>3));
   //un-scrambling