diff --git a/bin/maint/valid_issue.py b/bin/maint/valid_issue.py
index f2cec0c1cd5f1bffa13c5b45e9fe8ecfb29635f2..83bff1b49a2de3d530fe93e96d67b1ffb05d59e4 100755
--- a/bin/maint/valid_issue.py
+++ b/bin/maint/valid_issue.py
@@ -15,12 +15,20 @@ from api_roundup.utils import read_issue_list
 from api_roundup import validate_issue
 
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     # command arguments parser
     parser = OptionParser(usage=__doc__)
-    parser.add_option('-g', '--debug', action='callback', callback=setlevel,
-                      help="add debug informations")
+    parser.add_option(
+        "-g", "--debug", action="callback", callback=setlevel, help="add debug informations"
+    )
+    ltyp = []
+    for typ in ("anomalie", "evolution"):
+        print(f"Valid issues of type {typ!r} ([y]/n)?", end=" ")
+        ret = input()
+        if ret.lower() not in ("n", "no"):
+            ltyp.append(typ)
+
     opts, args = parser.parse_args()
     if len(args) != 1:
         parser.error("exactly one argument is required")
-    validate_issue(read_issue_list(args[0]))
+    validate_issue(read_issue_list(args[0]), types=ltyp)
diff --git a/lib/api_roundup/rex.py b/lib/api_roundup/rex.py
index fde974db69f4fb76e9018836fd08abfe163c9a9a..cabd9bc8480640037483566cad7c3beb169e587a 100644
--- a/lib/api_roundup/rex.py
+++ b/lib/api_roundup/rex.py
@@ -218,7 +218,7 @@ def mark_as_closed(issue_list, tagv, expl):
 
             prod_name = get_value(server, "produit", issue["produit"], "name")
             if prod_name == "code_aster":
-                type_name = server.display("type" + issue["type"], "name")["name"]
+                type_name = get_value(server, "type", issue["type"], "name")
                 if not issue[d_champ["a_corrige"]] and type_name != "aide utilisation":
                     changes.append([d_champ["a_corrige"], YES])
                     logger.warn(_("{0} should not be solved in V{1}").format(issue_id, typv))
@@ -244,7 +244,7 @@ def mark_as_closed(issue_list, tagv, expl):
             server.set(issue_id, *args)
 
 
-def validate_issue(issue_list):
+def validate_issue(issue_list, types=None):
     """Change the status of issues to 'valide_EDA'
     issue_list: list of issues numbers"""
     with get_connection(write=True) as server:
@@ -254,6 +254,11 @@ def validate_issue(issue_list):
         for numf in issue_list:
             issue_id = "issue" + str(numf)
             issue = server.display(issue_id)
+            if types is not None:
+                type_name = get_value(server, "type", issue["type"], "name")
+                if type_name not in types:
+                    logger.info(_("{0}: skipped (type: {1})").format(issue_id, type_name))
+                    continue
 
             # 4.2. check issue values
             status = get_value(server, "status", issue["status"], "name")