diff --git a/tests/pytests/test_prefix.py b/tests/pytests/test_prefix.py
index 2b576b65184b72081e023f0e173a962b4defed98..178f0e239dce58633a0509c126fa19b1ff02da2a 100644
--- a/tests/pytests/test_prefix.py
+++ b/tests/pytests/test_prefix.py
@@ -11,8 +11,6 @@ is either too short or too long, instead of matching the length of DNS
 message exactly.
 """
 
-import time
-
 import pytest
 
 import utils
@@ -71,26 +69,19 @@ def test_prefix_cuts_message(kresd_sock, datalen, send_query):
 
 def test_prefix_greater_than_message(kresd_sock, send_query):
     """Prefix is greater than the length of the entire DNS message."""
-    wire, invalid_msgid = utils.prepare_wire()
+    wire, _ = utils.prepare_wire()
     datalen = len(wire) + 16
     invalid_buff = utils.prepare_buffer(wire, datalen)
 
     send_query(kresd_sock, invalid_buff)
 
-    valid_buff, _ = utils.get_msgbuff()
-    kresd_sock.sendall(valid_buff)
-
-    # invalid_buff is answered (treats additional data as trailing garbage)
-    answer = utils.receive_parse_answer(kresd_sock)
-    assert answer.id == invalid_msgid
-
-    # parsing stream is broken by the invalid_buff, valid query is never answered
+    # The query is ignored due to trailing garbage and parsing stream
+    # is broken by the invalid_buff, so valid query is never answered.
     with utils.expect_kresd_close():
-        utils.receive_parse_answer(kresd_sock)
+        utils.ping_alive(kresd_sock)
 
 
 @pytest.mark.parametrize('glength', [
-    0,
     1,
     8,
     1024,
@@ -102,13 +93,10 @@ def test_prefix_trailing_garbage(kresd_sock, glength, query_before):
     if query_before:
         utils.ping_alive(kresd_sock)
 
-    for _ in range(10):
-        wire, msgid = utils.prepare_wire()
-        wire += utils.get_garbage(glength)
-        buff = utils.prepare_buffer(wire)
-
-        kresd_sock.sendall(buff)
-        answer = utils.receive_parse_answer(kresd_sock)
-        assert answer.id == msgid
+    wire, _ = utils.prepare_wire()
+    wire += utils.get_garbage(glength)
+    buff = utils.prepare_buffer(wire)
 
-        time.sleep(0.1)
+    kresd_sock.sendall(buff)
+    # The query is ignored due to trailing garbage but others can proceed.
+    utils.ping_alive(kresd_sock)