Index: doc/options.txt
===================================================================
--- doc/options.txt	(revision 4457)
+++ doc/options.txt	(working copy)
@@ -675,9 +675,10 @@
 ;--report-dead-ends=LEVEL
 : 	Set the dead end road warning level. The value of LEVEL (which
 defaults to 1 if this option is not specified) determines
-those roads to report: 0 = none, 1 = multiple one-way roads
-that join together but go nowhere, 2 = individual one-way roads
-that go nowhere.
+those roads to report:
+:* 0 = none
+:* 1 = report on connected one-way roads that go nowhere
+:* 2 = also report on individual one-way roads that go nowhere.
 
 ;--add-pois-to-lines
 : 	Generate POIs for lines. For each line (must not be closed) POIs are
@@ -696,13 +697,11 @@
 the area/multipolygon. Additionally the tag mkgmap:area2poi=true is
 set so that it is possible to use that information in the points style
 file. Artificial polygons created by multipolyon processing are not used.
-The POIs are created at the following positions (first rule that applies):
-:;polygons: 
-::First rule that applies of
+The POIs are created at the following positions:
+:;polygons: the first rule that applies of:
 ::* the first node tagged with a tag defined by the --pois-to-areas-placement option
 ::* the centre point  
-:;multipolygons:
-::First rule that applies of
+:;multipolygons: the first rule that applies of:
 ::* the node with role=label
 ::* the centre point of the biggest area
 ;--pois-to-areas-placement=tag=value[;tag=value...]
Index: doc/styles/internal-tags.txt
===================================================================
--- doc/styles/internal-tags.txt	(revision 4457)
+++ doc/styles/internal-tags.txt	(working copy)
@@ -60,7 +60,7 @@
 |=========================================================
 | Tag | Description     | Required mkgmap option
 | +mkgmap:way-has-pois+  | +true+ for ways that have at least one point with a tag +access=\*+, +barrier=\*+, or +highway=*+ | 'link-pois-to-ways'
-| +mkgmap:dead-end-check+  | Set to +false+ to disable the dead end check for a specific way | 'report-dead-ends'
+| +mkgmap:dead-end-check+  | Set to +false+ on a way or a node at the end of a way to disable the dead end check for that way | 'report-dead-ends'
 | +mkgmap:flare-check+  | Set to +true+ to force the flare check for a specific way, set to +false+ to disable it | 'check-roundabout-flares'
 | +mkgmap:dir-check+  | Set to +false+ to tell mkgmap to ignore the way when checking roundabouts for direction | 'check-roundabouts'
 | +mkgmap:no-dir-check+  | Set to +true+ to tell mkgmap to ignore the way when checking roundabouts for direction | 'check-roundabouts'
Index: resources/styles/default/points
===================================================================
--- resources/styles/default/points	(revision 4457)
+++ resources/styles/default/points	(working copy)
@@ -45,6 +45,10 @@
     set mkgmap:road-speed=0;
     }
 
+# skip dead-end checks for nodes that go elsewhere or are incomplete
+amenity=parking_entrance | railway=car_shuttle | railway=rolling_highway | fixme=* | FIXME=*
+    {set mkgmap:dead-end-check=no}
+
 internet_access=yes {name 'Internet ${name}' | 'Internet'} [0x2f12 resolution 24 continue]
 internet_access=* & internet_access!=no & internet_access!=yes
     {name 'Internet(${internet_access}) ${name}' | 'Internet(${internet_access})'} [0x2f12 resolution 24 continue]
Index: src/uk/me/parabola/imgfmt/app/Coord.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/Coord.java	(revision 4457)
+++ src/uk/me/parabola/imgfmt/app/Coord.java	(working copy)
@@ -41,7 +41,7 @@
 	private static final short PRESERVED_MASK = 0x0002; // bit in flags is true if point should not be filtered out
 	private static final short REPLACED_MASK = 0x0004;  // bit in flags is true if point was replaced 
 	private static final short ADDED_BY_CLIPPER_MASK = 0x0008; // bit in flags is true if point was added by clipper 
-	private static final short FIXME_NODE_MASK = 0x0010; // bit in flags is true if a node with this coords has a fixme tag
+	private static final short SKIP_DEAD_END_CHECK_NODE_MASK = 0x0010; // bit in flags is true if a node with this coords has a mkgmap:dead-end-check=no tag
 	private static final short REMOVE_MASK = 0x0020; // bit in flags is true if this point should be removed
 	private static final short VIA_NODE_MASK = 0x0040; // bit in flags is true if a node with this coords is the via node of a RestrictionRelation
 	
@@ -232,23 +232,23 @@
 		if (b) 
 			this.flags |= ADDED_BY_CLIPPER_MASK;
 		else 
-			this.flags &= ~ADDED_BY_CLIPPER_MASK; 
+			this.flags &= ~ADDED_BY_CLIPPER_MASK;
 	} 
 	
 	/**
-	 * Does this coordinate belong to a node with a fixme tag?
+	 * Does this coordinate belong to a node with a mkgmap:dead-end-check=no tag?
 	 * Note that the value is set after evaluating the points style. 
-	 * @return true if the fixme flag is set, else false
+	 * @return true if the flag is set, else false
 	 */
-	public boolean isFixme() {
-		return (flags & FIXME_NODE_MASK) != 0;
+	public boolean isSkipDeadEndCheck() {
+		return (flags & SKIP_DEAD_END_CHECK_NODE_MASK) != 0;
 	}
 	
-	public void setFixme(boolean b) {
+	public void setSkipDeadEndCheck(boolean b) {
 		if (b) 
-			this.flags |= FIXME_NODE_MASK;
+			this.flags |= SKIP_DEAD_END_CHECK_NODE_MASK;
 		else 
-			this.flags &= ~FIXME_NODE_MASK; 
+			this.flags &= ~SKIP_DEAD_END_CHECK_NODE_MASK;
 	}
 	
 	public boolean isToRemove() {
@@ -259,7 +259,7 @@
 		if (b) 
 			this.flags |= REMOVE_MASK;
 		else 
-			this.flags &= ~REMOVE_MASK; 
+			this.flags &= ~REMOVE_MASK;
 	}
 	
 	/**
Index: src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(revision 4457)
+++ src/uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(working copy)
@@ -311,7 +311,7 @@
 
 				if (way.tagIsLikeYes(onewayTagKey)) {
 					way.addTag(onewayTagKey, "yes");
-					if (foundType.isRoad() && checkFixmeCoords(way) )
+					if (foundType.isRoad() && hasSkipDeadEndCheckNode(way))
 						way.addTag("mkgmap:dead-end-check", "false");
 				} else { 
 					way.deleteTag(onewayTagKey);
@@ -388,12 +388,12 @@
 		}
 
 		/**
-		 * Check if the first or last of the coords of the way has the fixme flag set
+		 * Check if the first or last of the coords of the way has a flag set for skipping dead end check
 		 * @param way the way to check 
-		 * @return true if fixme flag was found
+		 * @return true if flag was found
 		 */
-		private boolean checkFixmeCoords(Way way) {
-			return way.getFirstPoint().isFixme() || way.getLastPoint().isFixme();
+		private boolean hasSkipDeadEndCheckNode(Way way) {
+			return way.getFirstPoint().isSkipDeadEndCheck() || way.getLastPoint().isSkipDeadEndCheck();
 		}
 
 
@@ -736,7 +736,7 @@
 		for (RestrictionRelation rr : rrList) {
 			if (!rr.isValidWithoutWay(way.getId())) {
 				if (log.isLoggable(logLevel)) {
-					log.log(logLevel, "restriction", rr.toBrowseURL(), " is ignored because referenced way",
+					log.log(logLevel, "restriction", rr.toBrowseURL(), "is ignored because referenced way",
 							way.toBrowseURL(), reason);
 				}
 				rr.setInvalid();
@@ -967,7 +967,7 @@
 		log.info("Found", numRoads, "roads",
 				numDriveOnLeftRoads, "in drive-on-left country,",
 				numDriveOnRightRoads, "in drive-on-right country, and",
-				numDriveOnSideUnknown, " with unknwon country");
+				numDriveOnSideUnknown, " with unknown country");
 		if (numDriveOnLeftRoads> 0 &&  numDriveOnRightRoads > 0)
 			log.error("Attention: Tile contains both drive-on-left (" + numDriveOnLeftRoads + 
 					") and drive-on-right roads (" + numDriveOnRightRoads + ")");
Index: src/uk/me/parabola/mkgmap/reader/osm/ElementSaver.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/ElementSaver.java	(revision 4457)
+++ src/uk/me/parabola/mkgmap/reader/osm/ElementSaver.java	(working copy)
@@ -224,12 +224,13 @@
 		for (Relation r : relationMap.values())
 			converter.convertRelation(r);
 
-		short fixmeTagKey = TagDict.getInstance().xlate("fixme"); 
-		short fixmeTagKey2 = TagDict.getInstance().xlate("FIXME"); 
+		short deadEndCheckTagKey = TagDict.getInstance().xlate("mkgmap:dead-end-check"); 
 		for (Node n : nodeMap.values()){
 			converter.convertNode(n);
-			if (n.getTag(fixmeTagKey) != null || n.getTag(fixmeTagKey2) != null){
-				n.getLocation().setFixme(true);
+			if (n.tagIsLikeNo(deadEndCheckTagKey)) {
+				Coord location = n.getLocation();
+				if (location != null)
+					location.setSkipDeadEndCheck(true);
 			}
 		}
 
