Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantLayer.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantLayer.java	(revision 32437)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantLayer.java	(revision 32438)
@@ -26,9 +26,15 @@
 import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
 import org.openstreetmap.josm.gui.layer.LayerPositionStrategy;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
 import org.openstreetmap.josm.tools.ImageProvider;
 
-public class PTAssistantLayer extends Layer implements SelectionChangedListener, PropertyChangeListener {
+public class PTAssistantLayer extends Layer
+		implements SelectionChangedListener, PropertyChangeListener, LayerChangeListener {
 
 	private List<OsmPrimitive> primitives = new ArrayList<>();
@@ -37,8 +43,9 @@
 	public PTAssistantLayer() {
 		super("pt_assistant layer");
-		 KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener(this);
-
-	}
-
+		KeyboardFocusManager.getCurrentKeyboardFocusManager().addPropertyChangeListener(this);
+		Main.getLayerManager().addLayerChangeListener(this);
+
+	}
+	
 	public void addPrimitive(OsmPrimitive primitive) {
 		this.primitives.add(primitive);
@@ -105,9 +112,9 @@
 
 	/**
-	 * Listens to a selection change 
+	 * Listens to a selection change
 	 */
 	@Override
 	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
-
+		
 		ArrayList<Relation> routes = new ArrayList<>();
 
@@ -131,8 +138,8 @@
 
 	}
-	
-	
+
 	/**
-	 * Listens to a focus change
+	 * Listens to a focus change, sets the primitives attribute to the route
+	 * relation in the top Relation Editor and repaints the map
 	 */
 	@Override
@@ -146,8 +153,8 @@
 
 			if (evt.getNewValue().getClass().equals(GenericRelationEditor.class)) {
-				
-				GenericRelationEditor editor = (GenericRelationEditor) evt.getNewValue(); 
+
+				GenericRelationEditor editor = (GenericRelationEditor) evt.getNewValue();
 				Relation relation = editor.getRelation();
-				
+
 				if (RouteUtils.isTwoDirectionRoute(relation)) {
 
@@ -169,3 +176,25 @@
 		}
 	}
+
+	@Override
+	public void layerAdded(LayerAddEvent arg0) {
+		// do nothing
+	}
+
+	@Override
+	public void layerOrderChanged(LayerOrderChangeEvent arg0) {
+		// do nothing
+
+	}
+
+	@Override
+	public void layerRemoving(LayerRemoveEvent event) {
+		
+		if (event.getRemovedLayer() instanceof OsmDataLayer) {
+			
+			this.primitives.clear();
+			Main.map.repaint();
+		}
+
+	}
 }
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantPaintVisitor.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantPaintVisitor.java	(revision 32437)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantPaintVisitor.java	(revision 32438)
@@ -22,5 +22,4 @@
 	private final MapView mv;
 
-
 	public PTAssistantPaintVisitor(Graphics g, MapView mv) {
 		super(g, mv);
@@ -42,5 +41,5 @@
 				}
 				label = label + "." + stopCount;
-				drawStop(rm.getMember(), Color.BLUE, Color.BLACK,  label);
+				drawStop(rm.getMember(), label);
 				stopCount++;
 			} else if (RouteUtils.isPTWay(rm)) {
@@ -58,5 +57,4 @@
 			}
 		}
-
 
 	}
@@ -103,16 +101,16 @@
 		double cosT = 8 * Math.cos(t);
 		double sinT = 8 * Math.sin(t);
-		
-		
-		int[] xPoints = {(int)(p1.x+cosT), (int)(p2.x+cosT), (int)(p2.x-cosT), (int)(p1.x-cosT)};
-		int[] yPoints = {(int)(p1.y-sinT), (int)(p2.y-sinT), (int)(p2.y+sinT), (int)(p1.y+sinT)};
+
+		int[] xPoints = { (int) (p1.x + cosT), (int) (p2.x + cosT), (int) (p2.x - cosT), (int) (p1.x - cosT) };
+		int[] yPoints = { (int) (p1.y - sinT), (int) (p2.y - sinT), (int) (p2.y + sinT), (int) (p1.y + sinT) };
 		g.setColor(color);
 		g.fillPolygon(xPoints, yPoints, 4);
-		g.fillOval((int)(p1.x-8), (int)(p1.y-8), 16, 16);
-		g.fillOval((int)(p2.x-8), (int)(p2.y-8), 16, 16);
-		
+		g.fillOval((int) (p1.x - 8), (int) (p1.y - 8), 16, 16);
+		g.fillOval((int) (p2.x - 8), (int) (p2.y - 8), 16, 16);
 
-//		g.drawLine((int) (p1.x - cosT), (int) (p1.y - sinT), (int) (p2.x + cosT), (int) (p2.y - sinT));
-//		g.drawLine((int) (p1.x - cosT), (int) (p1.y + sinT), (int) (p2.x - cosT), (int) (p2.y + sinT));
+		// g.drawLine((int) (p1.x - cosT), (int) (p1.y - sinT), (int) (p2.x +
+		// cosT), (int) (p2.y - sinT));
+		// g.drawLine((int) (p1.x - cosT), (int) (p1.y + sinT), (int) (p2.x -
+		// cosT), (int) (p2.y + sinT));
 
 	}
@@ -135,5 +133,5 @@
 	}
 
-	protected void drawStop(OsmPrimitive primitive, Color fillColor, Color outlineColor, String label) {
+	protected void drawStop(OsmPrimitive primitive, String label) {
 
 		// find the point to which the stop visualization will be linked:
@@ -141,19 +139,31 @@
 
 		Point p = mv.getPoint(n);
+		
+		g.setColor(Color.WHITE);
+		Font stringFont = new Font("SansSerif", Font.PLAIN, 24);
+		g.setFont(stringFont);
+		g.drawString(label, p.x + 20, p.y - 20);
 
+		Color fillColor = null;
+
+		if (primitive.hasTag("bus", "yes")) {
+			fillColor = Color.BLUE;
+		} else if (primitive.hasTag("tram", "yes")) {
+			fillColor = Color.RED;
+		} // TODO: add more options
 		g.setColor(fillColor);
-		g.fillOval(p.x - 5, p.y - 5, 10, 10);
-		g.setColor(outlineColor);
-		g.drawOval(p.x - 5, p.y - 5, 10, 10);
 
-		g.setColor(Color.WHITE);
-		Font stringFont = new Font( "SansSerif", Font.PLAIN, 18 );
-		g.setFont(stringFont);
-		g.drawString(label, p.x - 20, p.y - 20);
+		if (primitive.hasTag("public_transport", "stop_position")) {
+			g.fillOval(p.x - 8, p.y - 8, 16, 16);
+		} else {
+			g.fillRect(p.x - 8, p.y - 8, 16, 16);
+		}
+
+
 	}
-	
+
 	protected Graphics getGraphics() {
 		return this.g;
 	}
-	
+
 }
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java	(revision 32437)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java	(revision 32438)
@@ -68,5 +68,5 @@
 			return;
 		}
-
+		
 //		if (!Main.getLayerManager().containsLayer(layer)) {
 //			Main.getLayerManager().addLayer(layer);
