diff --git a/tests/pytests/test_prefix.py b/tests/pytests/test_prefix.py
index 2b576b65184b72081e023f0e173a962b4defed98..48662c58f9acae64629ffeec02d4b156df5a7ea9 100644
--- a/tests/pytests/test_prefix.py
+++ b/tests/pytests/test_prefix.py
@@ -77,20 +77,13 @@ def test_prefix_greater_than_message(kresd_sock, send_query):
 
     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 +95,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, msgid = 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)