Index: applications/editors/josm/plugins/validator/build.xml
===================================================================
--- applications/editors/josm/plugins/validator/build.xml	(revision 23791)
+++ applications/editors/josm/plugins/validator/build.xml	(revision 23792)
@@ -26,5 +26,5 @@
 	  ** update before publishing
 	-->
-	<property name="commit.message" value="i18n fix" />
+	<property name="commit.message" value="see JOSM # 5574 (patch by julianladisch) - do not warn for endpoint near border of amenity area" />
 	<property name="plugin.main.version" value="3408" />
 
Index: applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UnconnectedWays.java
===================================================================
--- applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UnconnectedWays.java	(revision 23791)
+++ applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UnconnectedWays.java	(revision 23792)
@@ -99,15 +99,12 @@
                 if (en == null)
                     continue;
-                //if("turning_circle".equals(en.get("highway")) ||
-                //        (isexit != null && isexit) || en.get("barrier") != null)
-                //    c4++;
                 if(!s.highway)
                     continue;
                 if (!endnodes_highway.contains(en))
                     continue;
-                Boolean isexit = OsmUtils.getOsmBoolean(en.get("noexit"));
-                if("turning_circle".equals(en.get("highway")) ||
-                   "bus_stop".equals(en.get("highway")) ||
-                  (isexit != null && isexit) || en.get("barrier") != null)
+                if("turning_circle".equals(en.get("highway")) 
+                    || "bus_stop".equals(en.get("highway")) 
+                    || OsmUtils.isTrue(en.get("noexit"))
+                    || en.hasKey("barrier"))
                     continue;
                 // There's a small false-positive here.  Imagine an intersection
@@ -213,5 +210,5 @@
             String railway = w.get("railway");
             String highway = w.get("highway");
-            this.isAbandoned = "abandoned".equals(railway) || "yes".equals(w.get("disused"));
+            this.isAbandoned = "abandoned".equals(railway) || OsmUtils.isTrue(w.get("disused"));
             this.highway = (highway != null || railway != null) && !isAbandoned;
             this.isBoundary = !this.highway && "administrative".equals(w.get("boundary"));
@@ -326,7 +323,8 @@
 
         public boolean isArea() {
-            return w.get("landuse") != null
-                || w.get("leisure") != null
-                || w.get("building") != null;
+            return w.hasKey("landuse")
+                || w.hasKey("leisure")
+                || w.hasKey("amenity")
+                || w.hasKey("building");
         }
     }
@@ -336,5 +334,5 @@
         List<MyWaySegment> ret = new ArrayList<MyWaySegment>();
         if (!w.isUsable()
-            || w.get("barrier") != null
+            || w.hasKey("barrier")
             || "cliff".equals(w.get("natural")))
             return ret;
@@ -360,5 +358,5 @@
         ways.addAll(getWaySegments(w));
         Set<Node> set = endnodes;
-        if(w.get("highway") != null || w.get("railway") != null)
+        if(w.hasKey("highway") || w.hasKey("railway"))
             set = endnodes_highway;
         addNode(w.firstNode(), set);
