Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 7377)
+++ /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 7377)
+++ /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 7377)
+++ /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
Index: /trunk/styles/standard/elemstyles.mapcss
===================================================================
--- /trunk/styles/standard/elemstyles.mapcss	(revision 7377)
+++ /trunk/styles/standard/elemstyles.mapcss	(revision 7378)
@@ -12,4 +12,8 @@
 meta {
     icon: "dialogs/mappaint/josm_small.png";
+}
+
+canvas {
+    default-points: false;
 }
 
@@ -26,4 +30,12 @@
     object-z-index: 10;
     icon-image: "misc/note-annotation.png";
+}
+
+/* special display of unreviewed tiger data (USA) */
+way["tiger:reviewed"=no]::core_tiger {
+    major-z-index: -10;
+    width: 11;
+    color: tiger_data#808000;
+    opacity: 0.6;
 }
 
@@ -270,76 +282,4 @@
 node[toll] {
     icon-image: "misc/no_icon.png";
-}
-
-/**************/
-/* place tags */
-/**************/
-
-/* lot's of "openGeoDB:..." tags can be found in germany */
-node["openGeoDB:type"=Stadt],
-node["openGeoDB:type"=Kreis],
-node["openGeoDB:type"=Gemeinde],
-node["openGeoDB:type"=Ort],
-node["openGeoDB:type"=District],
-node["openGeoDB:location"=locality] {
-    icon-image: "place/settlement/town.png";
-    text: auto;
-}
-area[place=continent],
-area[place=country],
-area[place=state],
-area[place=region],
-area[place=county],
-area[place=city],
-area[place=town],
-area[place=village],
-area[place=hamlet],
-area[place=isolated_dwelling],
-area[place=neighbourhood],
-area[place=suburb],
-area[place=locality],
-area[place=island],
-area[place=islet] {
-    fill-color: place#8de3cb;
-}
-node[place=continent],
-node[place=country],
-node[place=state],
-node[place=region],
-node[place=county] {
-    icon-image: "place/settlement/capital.png";
-    text: auto;
-}
-node[place=city] {
-    icon-image: "place/settlement/city.png";
-    text: auto;
-}
-node[place=town],
-node[place=village],
-node[place=hamlet],
-node[place=isolated_dwelling],
-node[place=neighbourhood],
-node[place=suburb] {
-    icon-image: "place/settlement/town.png";
-    text: auto;
-}
-node[place=locality] {
-    icon-image: "place/locality.png";
-    text: auto;
-}
-node[place=island] {
-    icon-image: "place/island.png";
-    text: auto;
-}
-node[place=islet] {
-    icon-image: "place/islet.png";
-    text: auto;
-}
-/* special display of unreviewed tiger data (USA) */
-way["tiger:reviewed"=no]::core_tiger {
-    major-z-index: -10;
-    width: 11;
-    color: tiger_data#808000;
-    opacity: 0.6;
 }
 
@@ -3610,7 +3550,4 @@
 /***************/
 
-canvas {
-    default-points: false;
-}
 node {
     text: auto;
@@ -3625,5 +3562,6 @@
 }
 node|z16-:tagged {
-    symbol-stroke-color: node_tagged#ccffff;
+    symbol-stroke-color: none;
+    symbol-fill-color: node_tagged#00ffff;
 }
 
@@ -3655,4 +3593,69 @@
 node|z21,area|z21   { font-size: 10; }
 node|z22-,area|z22- { font-size: 11; }
+
+/**************/
+/* place tags */
+/**************/
+
+/* lot's of "openGeoDB:..." tags can be found in germany */
+node|z11-["openGeoDB:type"=Stadt],
+node|z11-["openGeoDB:type"=Kreis],
+node|z11-["openGeoDB:type"=Gemeinde],
+node|z11-["openGeoDB:type"=Ort],
+node|z11-["openGeoDB:type"=District],
+node|z11-["openGeoDB:location"=locality] {
+    icon-image: "place/settlement/town.png";
+    text: auto;
+}
+area[place=continent],
+area[place=country],
+area[place=state],
+area[place=region],
+area[place=county],
+area[place=city],
+area[place=town],
+area[place=village],
+area[place=hamlet],
+area[place=isolated_dwelling],
+area[place=neighbourhood],
+area[place=suburb],
+area[place=locality],
+area[place=island],
+area[place=islet] {
+    fill-color: place#8de3cb;
+}
+node|z11-[place=continent],
+node|z11-[place=country],
+node|z11-[place=state],
+node|z11-[place=region],
+node|z11-[place=county] {
+    icon-image: "place/settlement/capital.png";
+    text: auto;
+}
+node|z11-[place=city] {
+    icon-image: "place/settlement/city.png";
+    text: auto;
+}
+node|z11-[place=town],
+node|z11-[place=village],
+node|z11-[place=hamlet],
+node|z11-[place=isolated_dwelling],
+node|z11-[place=neighbourhood],
+node|z11-[place=suburb] {
+    icon-image: "place/settlement/town.png";
+    text: auto;
+}
+node|z11-[place=locality] {
+    icon-image: "place/locality.png";
+    text: auto;
+}
+node|z11-[place=island] {
+    icon-image: "place/island.png";
+    text: auto;
+}
+node|z11-[place=islet] {
+    icon-image: "place/islet.png";
+    text: auto;
+}
 
 /* "deprecated" tags 
