diff --git a/test/regression.uts b/test/regression.uts
index 8fd902e6c6acd086a51d4b6378e6fdb4fc320d7d..d53fe23e1384ce4e60c408ff3bf577add160c33e 100644
--- a/test/regression.uts
+++ b/test/regression.uts
@@ -564,10 +564,14 @@ def _send_or_sniff(pkt, timeout, flt, pid, fork, t_other=None):
             return
     else:
         spkt = str(pkt)
+        # We do not want to crash when a packet cannot be parsed
+        old_debug_dissector = conf.debug_dissector
+        conf.debug_dissector = False
         pkts = sniff(
             timeout=timeout, filter=flt,
             stop_filter=lambda p: pkt.__class__ in p and str(p[pkt.__class__]) == spkt
         )
+        conf.debug_dissector = old_debug_dissector
         if fork:
             os.waitpid(pid, 0)
         else:
@@ -581,7 +585,7 @@ def send_and_sniff(pkt, timeout=2, flt=None):
     else:
         from threading import Thread
         def run_function(pkt, timeout, flt, pid, thread, results):
-            _send_or_sniff(pkt, timeout, flt, pid, False, thread)
+            _send_or_sniff(pkt, timeout, flt, pid, False, t_other=thread)
             results.put(True)
         results = Queue.Queue()
         t_parent = Thread(target=run_function, args=(pkt, timeout, flt, 0, None, results))