diff --git a/scripts/errors/pt2pt/InvalidComm.py b/scripts/errors/pt2pt/InvalidComm.py
index 3266010d74b50fdc6bb42f7f5a4cf68809e7908e..eeb195e94cb2c24c8371eeb48cbc606b6f80314d 100644
--- a/scripts/errors/pt2pt/InvalidComm.py
+++ b/scripts/errors/pt2pt/InvalidComm.py
@@ -61,10 +61,12 @@ class InvalidCommErrorP2P(ErrorGenerator):
                 continue
                 # TODO add probe call
 
+            i = 0
             for comm_to_use in self.comms_to_check:
                 if comm_to_use in self.missmatching_comms + self.intercomms and recv_func == "mpi_irecv" and generate_level < FULL_TEST_LEVEL:
                     # combination repeated
                     continue
+                i += 1
 
                 tm = get_invalid_param_p2p_case("comm", comm_to_use, check_recv, send_func, recv_func)
                 error_string = "ParamMatching"
@@ -97,7 +99,7 @@ class InvalidCommErrorP2P(ErrorGenerator):
                 if comm_to_use in self.missmatching_comms + self.intercomms and comm_to_use != "MPI_COMM_SELF":
                     tm.register_instruction(MPICallFactory().mpi_comm_free("&" + comm_var_name))
                 yield tm
+                if generate_level <= BASIC_TEST_LEVEL and i > 3:
+                    return
             # end for comm to check
-            if generate_level <= BASIC_TEST_LEVEL:
-                return
         # end for send_func in funcs_to_check
diff --git a/scripts/errors/pt2pt/InvalidRank.py b/scripts/errors/pt2pt/InvalidRank.py
index 4b063f2b65a3e75f84c2d27707065f2320fd17df..f77a6872ce4079ace62ea26f4fc5a06c14043779 100644
--- a/scripts/errors/pt2pt/InvalidRank.py
+++ b/scripts/errors/pt2pt/InvalidRank.py
@@ -72,8 +72,8 @@ class InvalidRankErrorP2P(ErrorGenerator):
 
                 yield tm
 
-        if generate_level <= BASIC_TEST_LEVEL:
-            return
+            if generate_level <= BASIC_TEST_LEVEL:
+                return
 
         for rank_to_use in self.invalid_ranks:
             check_recv = False