Index: src/org/openstreetmap/josm/plugins/validator/tests/UnconnectedWays.java
===================================================================
--- src/org/openstreetmap/josm/plugins/validator/tests/UnconnectedWays.java     (Revision 23733)
+++ src/org/openstreetmap/josm/plugins/validator/tests/UnconnectedWays.java     (Arbeitskopie)
@@ -98,17 +98,14 @@
             for(Node en : s.nearbyNodes(mindist)) {
                 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.get("barrier") != null)
                     continue;
                 // There's a small false-positive here.  Imagine an intersection
                 // like a 't'.  If the top part of the 't' is short enough, it
@@ -327,6 +324,7 @@
         public boolean isArea() {
             return w.get("landuse") != null
                 || w.get("leisure") != null
+                || w.get("amenity") != null
                 || w.get("building") != null;
         }
     }
