diff --git a/libraries/io/nw_10GbE/src/vhdl/nw_arp_request.vhd b/libraries/io/nw_10GbE/src/vhdl/nw_arp_request.vhd
index 143c0251e93b7fa37865920447d97d63739ac15d..1aeeb57d843fad84551b8e868d140a2b48a327aa 100644
--- a/libraries/io/nw_10GbE/src/vhdl/nw_arp_request.vhd
+++ b/libraries/io/nw_10GbE/src/vhdl/nw_arp_request.vhd
@@ -75,6 +75,9 @@ ARCHITECTURE rtl of nw_arp_request IS
   CONSTANT c_dp_field_blk_snk_data_w : NATURAL := field_slv_len(c_hdr_field_arr);
   CONSTANT c_dp_field_blk_src_data_w : NATURAL := c_data_w;
 
+  SIGNAL valid_sha : STD_LOGIC := '0';
+  SIGNAL valid_spa : STD_LOGIC := '0';
+  SIGNAL valid_tpa : STD_LOGIC := '0';
   SIGNAL valid_arp : STD_LOGIC := '0';
   SIGNAL pps_cnt   : NATURAL   := 0;
   SIGNAL trigger   : BOOLEAN   := FALSE;
@@ -102,13 +105,19 @@ BEGIN
   p_dp_pps : PROCESS (dp_clk, dp_rst)
   BEGIN
     IF dp_rst = '1' THEN
+      valid_sha <= '0';
+      valid_spa <= '0';
+      valid_tpa <= '0';
       valid_arp <= '0';
       trigger <= FALSE;
       pps_cnt <= 0;
       dp_field_blk_snk_in <= c_dp_sosi_rst;
     ELSIF RISING_EDGE(dp_clk) THEN
       -- Use signal to indicate if ARP can be enabled.
-      valid_arp <= vector_or(arp_sha) AND vector_or(arp_spa) AND vector_or(arp_tpa);
+      valid_sha <= vector_or(arp_sha);
+      valid_spa <= vector_or(arp_spa);
+      valid_tpa <= vector_or(arp_tpa);
+      valid_arp <= valid_sha AND valid_spa AND valid_tpa;
       IF valid_arp = '1' THEN
         dp_field_blk_snk_in <= nxt_dp_field_blk_snk_in;
         IF trigger AND dp_field_blk_snk_out.ready = '1' AND dp_field_blk_snk_out.xon = '1' THEN