Index: /trunk/styles/standard/elemstyles.mapcss
===================================================================
--- /trunk/styles/standard/elemstyles.mapcss	(revision 9012)
+++ /trunk/styles/standard/elemstyles.mapcss	(revision 9013)
@@ -4616,6 +4616,16 @@
     z-index: 2.1;
 }
-node[place=locality] {
+node|z15-[place=locality],
+node|z-14[place=locality][!setting("hide_icons")] {
     icon-image: "place/locality.png";
+    text: auto;
+    font-size: 10;
+    font-weight: bold;
+    text-color:black;
+    text-halo-color: white;
+    text-halo-radius: 1;
+}
+node[place=island] {
+    icon-image: "place/island.png";
     set icon_z0;
     text: auto;
@@ -4627,6 +4637,6 @@
     text-halo-radius: 1;
 }
-node[place=island] {
-    icon-image: "place/island.png";
+node[place=islet] {
+    icon-image: "place/islet.png";
     set icon_z0;
     text: auto;
@@ -4638,15 +4648,4 @@
     text-halo-radius: 1;
 }
-node[place=islet] {
-    icon-image: "place/islet.png";
-    set icon_z0;
-    text: auto;
-    set text_z0;
-    font-size: 10;
-    font-weight: bold;
-    text-color:black;
-    text-halo-color: white;
-    text-halo-radius: 1;
-}
 
 /***************************/
@@ -4681,7 +4680,8 @@
 /*
 Summary of different zoom levels:
-  (any zoom)    place=* and a few natural icons with their text is shown
+  (any zoom)    place=* (except locality) and a few natural icons with their text is shown
   |z-15         untagged way nodes are hidden completely
-  |z16-         fixme=* and note=* symbols
+  |z15          place=locality icon
+  |z16-         fixme=* and note=* symbols; place=locality text
   |z17-         normal POI icons (without text),
                 street name along highway=* ways
@@ -4739,4 +4739,7 @@
 node|z-17[setting("hide_icons")]!.text_z0 {
     text: none;
+}
+node|z16-17[setting("hide_icons")][place=locality] {
+    text: auto;
 }
 
