Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 7376)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 7378)
@@ -70,4 +70,5 @@
 import org.openstreetmap.josm.gui.mappaint.StyleCache.StyleList;
 import org.openstreetmap.josm.gui.mappaint.TextElement;
+import org.openstreetmap.josm.gui.mappaint.mapcss.Selector;
 import org.openstreetmap.josm.tools.CompositeList;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -1244,5 +1245,5 @@
                 Main.pref.getBoolean("mappaint.use-antialiasing", true) ?
                         RenderingHints.VALUE_ANTIALIAS_ON : RenderingHints.VALUE_ANTIALIAS_OFF);
-
+            
         highlightLineWidth = Main.pref.getInteger("mappaint.highlight.width", 4);
         highlightPointRadius = Main.pref.getInteger("mappaint.highlight.radius", 7);
@@ -1488,7 +1489,7 @@
             List<Way> ways = data.searchWays(bbox);
             List<Relation> relations = data.searchRelations(bbox);
-    
+
             final List<StyleRecord> allStyleElems = new ArrayList<>(nodes.size()+ways.size()+relations.size());
-    
+
             ConcurrentTasksHelper helper = new ConcurrentTasksHelper(allStyleElems, data);
 
@@ -1506,5 +1507,5 @@
             }
 
-            Collections.sort(allStyleElems);
+            Collections.sort(allStyleElems); // TODO: try parallel sort when switching to Java 8
 
             for (StyleRecord r : allStyleElems) {
@@ -1517,10 +1518,11 @@
                 );
             }
-    
+
             if (Main.isTraceEnabled()) {
                 timeFinished = System.currentTimeMillis();
-                System.err.println("; phase 2 (draw): " + (timeFinished - timePhase1) + " ms; total: " + (timeFinished - timeStart) + " ms");
-            }
-    
+                System.err.println("; phase 2 (draw): " + (timeFinished - timePhase1) + " ms; total: " + (timeFinished - timeStart) + " ms" +
+                    " (scale: " + circum + " zoom level: " + Selector.GeneralSelector.scale2level(circum) + ")");
+            }
+
             drawVirtualNodes(data, bbox);
         } finally {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Instruction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Instruction.java	(revision 7376)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Instruction.java	(revision 7378)
@@ -36,5 +36,11 @@
             this.key = key;
             this.isSetInstruction = isSetInstruction;
-            if (val instanceof LiteralExpression) {
+            if (val instanceof Keyword) {
+                if ("none".equals(((Keyword) val).val)) {
+                    this.val = null;
+                } else {
+                    this.val = val;
+                }
+            } else if (val instanceof LiteralExpression) {
                 Object litValue = ((LiteralExpression) val).evaluate(null);
                 if (key.equals(TEXT)) {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 7376)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 7378)
@@ -596,4 +596,10 @@
             return 2.0 * Math.PI * R / Math.pow(2.0, lvl) / 2.56;
         }
+        
+        public static int scale2level(double scale) {
+            if (scale < 0)
+                throw new IllegalArgumentException();
+            return (int) Math.floor(Math.log(2 * Math.PI * R / 2.56 / scale) / Math.log(2));
+        }
 
         @Override
