Index: applications/editors/josm/plugins/osmarender/build.xml
===================================================================
--- applications/editors/josm/plugins/osmarender/build.xml	(revision 4971)
+++ applications/editors/josm/plugins/osmarender/build.xml	(revision 4972)
@@ -2,6 +2,5 @@
 
 	<property name="josm" location="../../core/dist/josm-custom.jar" />
-	<!--<property name="osmarender" location="../../../osmarender" />-->
-	<property name="osmarender" location="../../../../rendering/osmarender" />
+	<property name="rendering" location="../../../../rendering" />
 
 	<target name="compile">
@@ -14,10 +13,7 @@
 
 	<target name="build"  depends="compile">
-		<copy todir="bin">
-			<fileset dir="${osmarender}">
-				<include name="osmarender.xsl"/>
-				<include name="osm-map-features.xml"/>
-			</fileset>
-		</copy>
+		<copy todir="bin" file="${rendering}/osmarender6/osmarender.xsl"/>
+		<copy tofile="bin/osm-map-features.xml"
+			file="${rendering}/osmarender5/osm-map-features-z17.xml"/>
 		<jar destfile="dist/osmarender.jar" basedir="bin">
 			<manifest>
Index: applications/editors/josm/plugins/osmarender/src/OsmarenderPlugin.java
===================================================================
--- applications/editors/josm/plugins/osmarender/src/OsmarenderPlugin.java	(revision 4971)
+++ applications/editors/josm/plugins/osmarender/src/OsmarenderPlugin.java	(revision 4972)
@@ -20,7 +20,7 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.data.osm.Segment;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.osm.visitor.AddVisitor;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.CollectBackReferencesVisitor;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
@@ -44,28 +44,20 @@
             LatLon topRight = Main.map.mapView.getLatLon(Main.map.mapView.getWidth(), 0);
             Bounds b = new Bounds(bottomLeft, topRight);
-            Collection<Node> nodes = new HashSet<Node>();
+			CollectBackReferencesVisitor backRefsV =
+				new CollectBackReferencesVisitor(Main.ds, true);
             DataSet fromDataSet = new DataSet();
-            AddVisitor adder = new AddVisitor(fromDataSet);
             for (Node n : Main.ds.nodes) {
                 if (n.coor.isWithin(b)) {
-                    n.visit(adder);
-                    nodes.add(n);
+					fromDataSet.nodes.add(n);
+                    n.visit(backRefsV);
                 }
             }
-            Collection<Segment> segments = new HashSet<Segment>();
-            for (Segment s : Main.ds.segments) {
-                if (nodes.contains(s.from) || nodes.contains(s.to)) {
-                    s.visit(adder);
-                    segments.add(s);
-                }
-            }
-            for (Way w : Main.ds.ways) {
-                for (Segment s : w.segments) {
-                    if (segments.contains(s)) {
-                        w.visit(adder);
-                        break;
-                    }
-                }
-            }
+			for (OsmPrimitive p : new HashSet<OsmPrimitive>(backRefsV.data)) {
+				if (p instanceof Way) {
+					backRefsV.data.addAll(((Way) p).nodes);
+				}
+			}
+			for (OsmPrimitive p : backRefsV.data)
+				fromDataSet.addPrimitive(p);
 
             String firefox = Main.pref.get("osmarender.firefox", "firefox");
