Index: /applications/editors/josm/plugins/mappaint/build.xml
===================================================================
--- /applications/editors/josm/plugins/mappaint/build.xml	(revision 2684)
+++ /applications/editors/josm/plugins/mappaint/build.xml	(revision 2685)
@@ -2,5 +2,6 @@
 
 	<!-- point to your JOSM directory -->
-	<property name="josm" location="../../../../editors/josm/dist/josm-custom.jar" />
+	<!-- <property name="josm" location="../../../../editors/josm/dist/josm-custom.jar" /> -->
+	<property name="josm" location="../josm/josm-latest.jar" ></property>
 
 
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintVisitor.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintVisitor.java	(revision 2684)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintVisitor.java	(revision 2685)
@@ -1,3 +1,6 @@
 package mappaint;
+
+import java.util.Collection;
+import java.util.LinkedList;
 
 import java.awt.BasicStroke;
@@ -55,5 +58,5 @@
 	@Override public void visit(Segment ls) {
 		if (isSegmentVisible(ls))
-			drawSegment(ls, getPreferencesColor("untagged",Color.GRAY));
+			drawSegment(ls, getPreferencesColor("untagged",Color.GRAY),Main.pref.getBoolean("draw.segment.direction"));
 	}
 
@@ -183,5 +186,5 @@
 	 */
 	// Altered - now specify width
-	@Override protected void drawSegment(Segment ls, Color col) {
+	@Override protected void drawSegment(Segment ls, Color col,boolean showDirection) {
 			drawSegment(ls,col,1);
 	}
@@ -224,4 +227,6 @@
 	// Shows areas before non-areas
 	public void visitAll(DataSet data) {
+
+		Collection<Way> noAreaWays = new LinkedList<Way>();
 		for (final OsmPrimitive osm : data.segments)
 			if (!osm.deleted)
@@ -231,8 +236,9 @@
 			if (!osm.deleted && MapPaintPlugin.elemStyles.isArea(osm))
 				osm.visit(this);
-
-		for (final OsmPrimitive osm : data.ways)
-			if (!osm.deleted && !MapPaintPlugin.elemStyles.isArea(osm))
-				osm.visit(this);
+			else if (!osm.deleted)
+				noAreaWays.add((Way)osm);
+
+		for (final OsmPrimitive osm : noAreaWays)
+			osm.visit(this);
 
 		for (final OsmPrimitive osm : data.nodes)
