Index: src/uk/me/parabola/mkgmap/osmstyle/TypeReader.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/TypeReader.java	(Revision 1878)
+++ src/uk/me/parabola/mkgmap/osmstyle/TypeReader.java	(Arbeitskopie)
@@ -69,6 +69,8 @@
 				gt.propagateActions(true);
 			} else if (w.equals("no_propagate")) {
 				gt.propagateActions(false);
+			} else if (w.equals("add_poi")) {
+				gt.setAddPoi(true);
 			} else if (w.equals("oneway")) {
 				// reserved
 			} else if (w.equals("access")) {
Index: src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(Revision 1878)
+++ src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(Arbeitskopie)
@@ -541,12 +541,14 @@
 
 		clipper.clipShape(shape, collector);
 		
-		nodeRules.resolveType(way, new TypeResult() {
-			public void add(Element el, GType type) {
-				if(type != null)
-			shape.setPoiType(type.getType());
-			}
-		});
+		if (gt.isAddPoi()) {
+			nodeRules.resolveType(way, new TypeResult() {
+				public void add(Element el, GType type) {
+					if(type != null)
+						shape.setPoiType(type.getType());
+				}
+			});
+		}
 	}
 
 	private void addPoint(Node node, GType gt) {
Index: src/uk/me/parabola/mkgmap/main/MapMaker.java
===================================================================
--- src/uk/me/parabola/mkgmap/main/MapMaker.java	(Revision 1878)
+++ src/uk/me/parabola/mkgmap/main/MapMaker.java	(Arbeitskopie)
@@ -151,47 +151,39 @@
 	}
 
 	private void makeAreaPOIs(CommandArgs args, LoadableMapDataSource src) {
-		String s = args.get("add-pois-to-areas", null);
-		if (s != null) {
 			
-			MapPointFastFindMap poiMap = new MapPointFastFindMap();
+		MapPointFastFindMap poiMap = new MapPointFastFindMap();
 
-			for (MapPoint point : src.getPoints()) 
-			{
-				if(!point.isRoadNamePOI()) // Don't put road pois in this list
-					poiMap.put(null, point);
-			}
+		for (MapPoint point : src.getPoints()) 
+		{
+			if(!point.isRoadNamePOI()) // Don't put road pois in this list
+				poiMap.put(null, point);
+		}
 			
-			for (MapShape shape : src.getShapes()) {
-				String shapeName = shape.getName();
+		for (MapShape shape : src.getShapes()) {
+			String shapeName = shape.getName();
 
-				int pointType = shape.getPoiType();
+			int pointType = shape.getPoiType();
 				
-				// only make a point if the shape has a name and we know what type of point to make
-				if (pointType == 0)
-					continue;
+			// only make a point if the shape has a name and we know what type of point to make
+			if (pointType == 0)
+				continue;
 
-				
-				// We don't want to add unnamed cities !!
-				if(MapPoint.isCityType(pointType) && shapeName == null)
-					continue;
-				
-				// check if there is not already a poi in that shape 
+			// check if there is not already a poi in that shape 
 							
-				if(poiMap.findPointInShape(shape, pointType, shapeName) == null) {
-					MapPoint newPoint = new MapPoint();
+			if(poiMap.findPointInShape(shape, pointType, shapeName) == null) {
+				MapPoint newPoint = new MapPoint();
 					
-					newPoint.setName(shapeName);
-					newPoint.setType(pointType);
+				newPoint.setName(shapeName);
+				newPoint.setType(pointType);
 
-					copyAddressInformation(shape, newPoint);
+				copyAddressInformation(shape, newPoint);
 
-					newPoint.setLocation(shape.getLocation()); // TODO use centroid
+				newPoint.setLocation(shape.getLocation()); // TODO use centroid
 
-					src.getPoints().add(newPoint);
+				src.getPoints().add(newPoint);
 
-					log.info("created POI ", shapeName, "from shape");
-				}
+				log.info("created POI ", shapeName, "from shape");
 			}
 		}
 
Index: src/uk/me/parabola/mkgmap/reader/osm/GType.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/GType.java	(Revision 1878)
+++ src/uk/me/parabola/mkgmap/reader/osm/GType.java	(Arbeitskopie)
@@ -59,6 +59,9 @@
 	// actions will always be executed
 	private boolean propogateActionsOnContinue;
 
+	// only applicable for ways (roads, lines and shapes)
+	private boolean addPoi = false;
+
 	public GType(int featureKind, String type) {
 		this.featureKind = featureKind;
 		try {
@@ -198,4 +201,12 @@
 	public void setContinueSearch(boolean continueSearch) {
 		this.continueSearch = continueSearch;
 	}
+
+	public void setAddPoi(boolean addPoi) {
+		this.addPoi = addPoi;
+	}
+
+	public boolean isAddPoi() {
+		return addPoi;
+	}
 }
