Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 7160)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSStyleSource.java	(revision 7161)
@@ -58,9 +58,10 @@
     public final List<MapCSSRule> rules = new ArrayList<>();
     // rule indices, filtered by primitive type
-    public final MapCSSRuleIndex nodeRules = new MapCSSRuleIndex();
-    public final MapCSSRuleIndex wayRules = new MapCSSRuleIndex();
-    public final MapCSSRuleIndex relationRules = new MapCSSRuleIndex();
-    public final MapCSSRuleIndex multipolygonRules = new MapCSSRuleIndex();
-    public final MapCSSRuleIndex canvasRules = new MapCSSRuleIndex();
+    public final MapCSSRuleIndex nodeRules = new MapCSSRuleIndex();         // nodes
+    public final MapCSSRuleIndex wayRules = new MapCSSRuleIndex();          // ways without tag area=no
+    public final MapCSSRuleIndex wayNoAreaRules = new MapCSSRuleIndex();    // ways with tag area=no
+    public final MapCSSRuleIndex relationRules = new MapCSSRuleIndex();     // relations that are not multipolygon relations
+    public final MapCSSRuleIndex multipolygonRules = new MapCSSRuleIndex(); // multipolygon relations
+    public final MapCSSRuleIndex canvasRules = new MapCSSRuleIndex();       // rules to apply canvas properties
 
     private Color backgroundColorOverride;
@@ -184,4 +185,5 @@
         nodeRules.clear();
         wayRules.clear();
+        wayNoAreaRules.clear();
         relationRules.clear();
         multipolygonRules.clear();
@@ -230,4 +232,5 @@
                     break;
                 case "way":
+                    wayNoAreaRules.add(optRule);
                     wayRules.add(optRule);
                     break;
@@ -243,4 +246,5 @@
                     nodeRules.add(optRule);
                     wayRules.add(optRule);
+                    wayNoAreaRules.add(optRule);
                     relationRules.add(optRule);
                     multipolygonRules.add(optRule);
@@ -260,4 +264,5 @@
         nodeRules.initIndex();
         wayRules.initIndex();
+        wayNoAreaRules.initIndex();
         relationRules.initIndex();
         multipolygonRules.initIndex();
@@ -359,5 +364,9 @@
             matchingRuleIndex = nodeRules;
         } else if (osm instanceof Way) {
-            matchingRuleIndex = wayRules;
+            if (osm.isKeyFalse("area")) {
+                matchingRuleIndex = wayNoAreaRules;
+            } else {
+                matchingRuleIndex = wayRules;
+            }
         } else {
             if (((Relation) osm).isMultipolygon()) {
