diff --git a/resources/styles/default/points b/resources/styles/default/points
index a69b11b..662de5d 100644
--- a/resources/styles/default/points
+++ b/resources/styles/default/points
@@ -78,6 +78,10 @@ mkgmap:phone!=* & phone=* { set mkgmap:phone='${phone}' }
 mkgmap:phone!=* & contact:phone=* { add mkgmap:phone='${contact:phone}' }
 
 mkgmap:is_in!=* & is_in=* { set mkgmap:is_in='${is_in}' }
+
+# remove unnamed generated POIs
+name!=* & mkgmap:area2poi=true { delete * }
+
 internet_access=yes { name 'Internet ${name}' | 'Internet' } [0x2f12 resolution 24 continue]
 internet_access=* & internet_access!=no & internet_access!=yes { name 'Internet(${internet_access}) ${name|def:}' } [0x2f12 resolution 24 continue]
 
diff --git a/src/uk/me/parabola/mkgmap/reader/osm/Element.java b/src/uk/me/parabola/mkgmap/reader/osm/Element.java
index 1ee9784..97dfacf 100644
--- a/src/uk/me/parabola/mkgmap/reader/osm/Element.java
+++ b/src/uk/me/parabola/mkgmap/reader/osm/Element.java
@@ -52,9 +52,13 @@ public abstract class Element implements Iterable<String> {
 
 	public void deleteTag(String tagname) {
 		if(tags != null) {
-			tags.remove(tagname);
-			if (tags.size() == 0) {
+			if (tagname.equals("*")) {
 				tags = null;
+			} else {
+				tags.remove(tagname);
+				if (tags.size() == 0) {
+					tags = null;
+				}
 			}
 		}
 	}
