Index: trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 14517)
+++ trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 14518)
@@ -123,5 +123,4 @@
         if (primitives == null || primitives.isEmpty()) return tags;
         // initialize with the first
-        //
         tags.add(TagCollection.from(primitives.iterator().next()));
 
@@ -132,5 +131,7 @@
                 continue;
             }
-            tags.add(tags.intersect(TagCollection.from(primitive)));
+            tags = tags.intersect(TagCollection.from(primitive));
+            if (tags.isEmpty())
+                break;
         }
         return tags;
