Index: /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 8821)
+++ /trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java	(revision 8822)
@@ -11,4 +11,5 @@
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -29,5 +30,4 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.mappaint.Environment;
-import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector;
 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser;
@@ -1440,9 +1440,14 @@
     static Match compileMapCSS(String mapCSS) throws ParseError {
         try {
-            final Selector selector = new MapCSSParser(new StringReader(mapCSS)).selector();
+            final List<Selector> selectors = new MapCSSParser(new StringReader(mapCSS)).selectors();
             return new Match() {
                 @Override
                 public boolean match(OsmPrimitive osm) {
-                    return selector.matches(new Environment(osm));
+                    for (Selector selector : selectors) {
+                        if (selector.matches(new Environment(osm))) {
+                            return true;
+                        }
+                    }
+                    return false;
                 }
             };
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj	(revision 8821)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj	(revision 8822)
@@ -604,14 +604,9 @@
 void rule():
 {
-    List<Selector> selectors = new ArrayList<Selector>();
-    Selector sel;
+    List<Selector> selectors;
     Declaration decl;
 }
 {
-    sel=child_selector() { selectors.add(sel); }
-    (
-        <COMMA> w()
-        sel=child_selector() { selectors.add(sel); }
-    )*
+    selectors=selectors()
     decl=declaration()
     { 
@@ -620,4 +615,18 @@
         }
     }
+}
+
+List<Selector> selectors():
+{
+    List<Selector> selectors = new ArrayList<Selector>();
+    Selector sel;
+}
+{
+    sel=child_selector() { selectors.add(sel); }
+    (
+        <COMMA> w()
+        sel=child_selector() { selectors.add(sel); }
+    )*
+    { return selectors; }
 }
 
