diff --git a/nfapi/open-nFAPI/vnf/src/vnf_p7.c b/nfapi/open-nFAPI/vnf/src/vnf_p7.c
index cc887ad9ed853c1b56f20b508aa7c8a74464dfc6..b323fd89362ce7042e0ae80e56a3453b2cc2bf7a 100644
--- a/nfapi/open-nFAPI/vnf/src/vnf_p7.c
+++ b/nfapi/open-nFAPI/vnf/src/vnf_p7.c
@@ -2528,6 +2528,7 @@ int vnf_nr_p7_read_dispatch_message(vnf_p7_t* vnf_p7)
 			if(recvfrom_result > 0)
 			{
 				vnf_nr_handle_p7_message(vnf_p7->rx_message_buffer, recvfrom_result, vnf_p7);
+				recvfrom_result = -1;
 			}
 			else
 			{
diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
index 9cb06bdd2189c6ed22155030252a0613b7e65ff2..7a329000819aaf4d854ee1e3d2dee5fef649f359 100644
--- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
@@ -1285,6 +1285,10 @@ int nr_acknack_scheduling(int mod_id,
 
   // advance ul_slot if it is not reachable by UE
   pucch->ul_slot = max(pucch->ul_slot, slot + pdsch_to_harq_feedback[0]);
+  if (pucch->ul_slot > 19) {
+    pucch->ul_slot = pucch->ul_slot % 20;
+    pucch->frame = (pucch->frame + 1) % 1024;
+  }
 
   // Find the right timing_indicator value.
   int i = 0;