Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/OverlappingWays.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/OverlappingWays.java	(revision 15367)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/OverlappingWays.java	(revision 15368)
@@ -16,4 +16,5 @@
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.function.Predicate;
 
 import org.openstreetmap.josm.data.osm.Node;
@@ -54,4 +55,6 @@
                     "barrier", "building", "building:part", "historic:building", "demolished:building",
                     "removed:building", "disused:building", "abandoned:building", "proposed:building", "man_made"));
+    protected static final Predicate<OsmPrimitive> IGNORED = primitive ->
+            IGNORED_KEYS.get().stream().anyMatch(primitive::hasKey) || primitive.hasTag("tourism", "camp_site");
 
     /** Constructor */
@@ -153,11 +156,5 @@
         for (TestError error : preliminaryErrors) {
             if (error.getSeverity() == Severity.WARNING || error.getHighlighted().size() / error.getPrimitives().size() >= 3) {
-                boolean ignore = false;
-                for (String ignoredKey : IGNORED_KEYS.get()) {
-                    if (error.getPrimitives().stream().anyMatch(p -> p.hasKey(ignoredKey))) {
-                        ignore = true;
-                        break;
-                    }
-                }
+                boolean ignore = error.getPrimitives().stream().anyMatch(IGNORED);
                 if (!ignore) {
                     errors.add(error);
