diff --git a/lnet/utils/debug.c b/lnet/utils/debug.c
index e2ff90bb0358b5088e2de53c7bfb205ca7f8adbd..045fc2c6d3ca165c00caa3c2912ab155ea3bf5d2 100644
--- a/lnet/utils/debug.c
+++ b/lnet/utils/debug.c
@@ -406,9 +406,8 @@ static int parse_buffer(FILE *in, FILE *out)
                 if (rc <= 0)
                         break;
 
-                if (hdr->ph_mask &&
-                    (!(subsystem_mask & hdr->ph_subsys) ||
-                     (!(debug_mask & hdr->ph_mask)))) {
+                if ((hdr->ph_subsys && !(subsystem_mask & hdr->ph_subsys)) ||
+                    (hdr->ph_mask   && !(debug_mask & hdr->ph_mask))) {
                         dropped++;
                         continue;
                 }