diff --git a/scripts/errors/coll/ParamMatchingType.py b/scripts/errors/coll/ParamMatchingType.py
index bb88e4b8d85d7d772190b530e77d809ca8b46bc4..e03e18167731ac6012b005752e671a105b0a51f3 100644
--- a/scripts/errors/coll/ParamMatchingType.py
+++ b/scripts/errors/coll/ParamMatchingType.py
@@ -234,6 +234,6 @@ class InvalidComErrorColl(ErrorGenerator):
                                        get_bytes_size_for_type(type_1),
                                        func_to_use, comm)
 
-            if type_1 not in correct_types_checked:
-                correct_types_checked.add(type_1)
+            if (type_1, comm) not in correct_types_checked:
+                correct_types_checked.add((type_1, comm))
                 yield get_correct_case(type_1, 1, func_to_use, comm)
diff --git a/scripts/errors/dtypes/DtypeMissmatch.py b/scripts/errors/dtypes/DtypeMissmatch.py
index 2bd13efe1b2a9452f057cfd4363972ae4ccb2285..6094f9a4423efb39edc782911b52bb3a9fd47e39 100644
--- a/scripts/errors/dtypes/DtypeMissmatch.py
+++ b/scripts/errors/dtypes/DtypeMissmatch.py
@@ -207,8 +207,8 @@ class DtypeMissmatch(ErrorGenerator):
             yield get_global_missmatch(type_1, type_2, get_bytes_size_for_type(type_2),
                                        get_bytes_size_for_type(type_1), send_func, recv_func, comm)
 
-            if type_1 not in correct_types_checked:
-                correct_types_checked.add(type_1)
+            if (type_1, comm) not in correct_types_checked:
+                correct_types_checked.add((type_1, comm))
                 yield get_correct_case(type_1, 1, send_func, recv_func, comm)
 
         # TODO mrecv?