Index: uk/me/parabola/imgfmt/app/Coord.java
===================================================================
--- uk/me/parabola/imgfmt/app/Coord.java	(revision 2526)
+++ uk/me/parabola/imgfmt/app/Coord.java	(working copy)
@@ -39,6 +39,7 @@
 	private final static byte PRESERVED_MASK = 0x02; // bit in flags is true if point should not be filtered out
 	private final static byte REPLACED_MASK = 0x04;  // bit in flags is true if point was replaced 
 	private final static byte TREAT_AS_NODE_MASK = 0x08; // bit in flags is true if point should be treated as a node
+	private final static byte FIXME_NODE_MASK = 0x10; // bit in flags is true if node with this coord has fixme tag
 	private final int latitude;
 	private final int longitude;
 	private byte highwayCount; // number of highways that use this point
@@ -147,6 +148,17 @@
 			this.flags &= ~TREAT_AS_NODE_MASK; 
 	}
 
+	public boolean isFixme() {
+		return (flags & FIXME_NODE_MASK) != 0;
+	}
+	
+	public void setFixme(boolean b) {
+		if (b) 
+			this.flags |= FIXME_NODE_MASK;
+		else 
+			this.flags &= ~FIXME_NODE_MASK; 
+	}
+	
 	public int hashCode() {
 		// Use a factor for latitude to span over the whole integer range:
 		// max lat: 4194304
@@ -284,4 +296,5 @@
 	public String toOSMURL() {
 		return toOSMURL(17);
 	}
+
 }
Index: uk/me/parabola/mkgmap/osmstyle/StyledConverter.java
===================================================================
--- uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(revision 2526)
+++ uk/me/parabola/mkgmap/osmstyle/StyledConverter.java	(working copy)
@@ -1430,6 +1430,8 @@
 		if (way.isBoolTag("oneway")) {
 			road.setDirection(true);
 			road.setOneway();
+			if (checkFixmeCoords(way))
+				way.addTag("mkgmap:dead-end-check", "false");
 			road.doDeadEndCheck(!way.isNotBoolTag("mkgmap:dead-end-check"));
 		}
 
@@ -1592,6 +1594,19 @@
 			addRoadWithoutLoops(trailingWay, gt);
 	}
 
+	/**
+	 * Check if the first or last of the coords of the way has the fixme flag set
+	 * @param way the way to check 
+	 * @return true if fixme flag was found
+	 */
+	private boolean checkFixmeCoords(Way way) {
+		if (way.getPoints().get(0).isFixme())
+			return true;
+		if (way.getPoints().get(way.getPoints().size()-1).isFixme())
+			return true;
+		return false;
+	}
+
 	// split a Way at the specified point and return the new Way (the
 	// original Way is truncated)
 
Index: uk/me/parabola/mkgmap/reader/osm/ElementSaver.java
===================================================================
--- uk/me/parabola/mkgmap/reader/osm/ElementSaver.java	(revision 2526)
+++ uk/me/parabola/mkgmap/reader/osm/ElementSaver.java	(working copy)
@@ -224,8 +224,12 @@
 		for (Relation r : relationMap.values())
 			converter.convertRelation(r);
 
-		for (Node n : nodeMap.values())
+		for (Node n : nodeMap.values()){
 			converter.convertNode(n);
+			if (n.getTag("fixme") != null || n.getTag("FIXME") != null){
+				n.getLocation().setFixme(true);
+			}
+		}
 
 		nodeMap = null;
 
Index: uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java
===================================================================
--- uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java	(revision 2526)
+++ uk/me/parabola/mkgmap/reader/osm/HighwayHooks.java	(working copy)
@@ -147,34 +147,12 @@
 				log.info("Linking POI " + currentNodeInWay.toBrowseURL() + " to way at " + co.toOSMURL());
 			}
 		}
-
-		// if the first Node of the Way has a FIXME attribute,
-		// disable dead-end-check for oneways
-		// [Osm5XmlHandler would do way.addTag("oneway","yes") later,
-		// so we set the attribute on all ways that start with FIXME.]
-		if (way.getPoints().isEmpty()/* && way.isBoolTag("oneway")*/)
-			checkDeadEndCheck(way);
 	}
 
-	/** Disable the dead-end-check for oneways
-	 * if currentNodeInWay carries a FIXME attribute.
-	 * @param way	where to possibly disable the dead-end-check
-	 */
-	private void checkDeadEndCheck(Way way) {
-		if (currentNodeInWay != null &&
-				(currentNodeInWay.getTag("FIXME") != null ||
-				 currentNodeInWay.getTag("fixme") != null))
-			way.addTag("mkgmap:dead-end-check", "false");
-	}
-
 	public void onAddWay(Way way) {
 		String highway = way.getTag("highway");
 		if (highway != null || "ferry".equals(way.getTag("route"))) {
 			boolean oneway = way.isBoolTag("oneway");
-			// if the last Node of the Way has a FIXME attribute,
-			// disable dead-end-check for oneways
-			if (oneway)
-				checkDeadEndCheck(way);
 
 			// if the way is a roundabout but isn't already
 			// flagged as "oneway", flag it here
