Index: trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 14493)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 14494)
@@ -64,4 +64,5 @@
     public static final String ROLE_VERIF_PROBLEM_MSG = tr("Role verification problem");
     private boolean ignoreMultiPolygons;
+    private boolean ignoreTurnRestrictions;
 
     /**
@@ -109,5 +110,7 @@
             if (t instanceof MultipolygonTest) {
                 ignoreMultiPolygons = true;
-                break;
+            }
+            if (t instanceof TurnrestrictionTest) {
+                ignoreTurnRestrictions = true;
             }
         }
@@ -125,4 +128,8 @@
         if (ignoreMultiPolygons && n.isMultipolygon()) {
             // see #17010: don't report same problem twice
+            return;
+        }
+        if (ignoreTurnRestrictions && n.hasTag("type","restriction")) {
+            // see #17057: TurnrestrictionTest is specialized on this
             return;
         }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TurnrestrictionTest.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TurnrestrictionTest.java	(revision 14493)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TurnrestrictionTest.java	(revision 14494)
@@ -130,6 +130,8 @@
             }
         }
+        final String restriction = r.get("restriction");
         if (morefrom) {
-            errors.add(TestError.builder(this, Severity.ERROR, MORE_FROM)
+            Severity severity = "no_entry".equals(restriction) ? Severity.OTHER : Severity.ERROR;
+            errors.add(TestError.builder(this, severity, MORE_FROM)
                     .message(tr("More than one \"from\" way found"))
                     .primitives(r)
@@ -137,5 +139,6 @@
         }
         if (moreto) {
-            errors.add(TestError.builder(this, Severity.ERROR, MORE_TO)
+            Severity severity = "no_exit".equals(restriction) ? Severity.OTHER : Severity.ERROR;
+            errors.add(TestError.builder(this, severity, MORE_TO)
                     .message(tr("More than one \"to\" way found"))
                     .primitives(r)
@@ -170,5 +173,5 @@
         }
         if (fromWay.equals(toWay)) {
-            Severity severity = r.hasTag("restriction", "no_u_turn") ? Severity.OTHER : Severity.WARNING;
+            Severity severity = "no_u_turn".equals(restriction) ? Severity.OTHER : Severity.WARNING;
             errors.add(TestError.builder(this, severity, FROM_EQUALS_TO)
                     .message(tr("\"from\" way equals \"to\" way"))
