diff --git a/libraries/io/nw_10GbE/tb/vhdl/tb_nw_ping_response.vhd b/libraries/io/nw_10GbE/tb/vhdl/tb_nw_ping_response.vhd
index 1c7dcfe5c6c5130e1943386c41c013d0a392010b..0f38f4ae42540a7d0a57eb17e156bf3d5bbe9795 100644
--- a/libraries/io/nw_10GbE/tb/vhdl/tb_nw_ping_response.vhd
+++ b/libraries/io/nw_10GbE/tb/vhdl/tb_nw_ping_response.vhd
@@ -100,6 +100,8 @@ ARCHITECTURE tb OF tb_nw_ping_response IS
   CONSTANT c_ping_packet_field_sel : STD_LOGIC_VECTOR(c_nof_ping_packet_fields-1 DOWNTO 0) := (OTHERS => '0');
   CONSTANT c_udp_packet_field_sel : STD_LOGIC_VECTOR(c_nof_udp_packet_fields-1 DOWNTO 0) := (OTHERS => '0');
 
+  CONSTANT c_nof_ping_responses : NATURAL := 20;
+
   SIGNAL tb_end             : STD_LOGIC := '0';
   SIGNAL clk                : STD_LOGIC := '1';
   SIGNAL rst                : STD_LOGIC := '1';
@@ -180,10 +182,9 @@ BEGIN
  
   p_tb_end : PROCESS
   BEGIN
-    proc_common_wait_until_evt(clk, nw_ping_response_src_out.eop);
-    proc_common_wait_until_evt(clk, nw_ping_response_src_out.eop);
-    proc_common_wait_until_evt(clk, nw_ping_response_src_out.eop);
-    proc_common_wait_until_evt(clk, nw_ping_response_src_out.eop);
+    FOR I IN 0 TO 2*c_nof_ping_responses LOOP
+      proc_common_wait_until_evt(clk, nw_ping_response_src_out.eop);
+    END LOOP;
     tb_end <= '1';
   END PROCESS;