Index: trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java	(revision 11782)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java	(revision 11783)
@@ -225,5 +225,5 @@
     @Override
     public void visit(Relation r) {
-        if (!r.isUsable() || r.hasIncompleteMembers())
+        if (!r.isUsable() || r.hasIncompleteMembers() || "tmc".equals(r.get("type")) || "TMC".equals(r.get("type")))
             return;
         List<RelationMember> rMembers = r.getMembers();
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 11782)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 11783)
@@ -306,9 +306,8 @@
         // verify unwanted members
         for (String key : map.keySet()) {
-            if (!allroles.containsKey(key)) {
+            if (!allroles.containsKey(key) && !"network".equals(n.get("type")) && !"bicycle".equals(n.get("route"))) {
                 String templates = allroles.keySet().stream().collect(Collectors.joining("/"));
 
                 if (!key.isEmpty()) {
-
                     errors.add(TestError.builder(this, Severity.WARNING, ROLE_UNKNOWN)
                             .message(ROLE_VERIF_PROBLEM_MSG, marktr("Role ''{0}'' unknown in templates ''{1}''"), key, templates)
