Index: applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java	(revision 20000)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java	(revision 20003)
@@ -208,4 +208,6 @@
       if (e.getType() == TableModelEvent.UPDATE)
       {
+	relation.setModified(true);
+	
 	String key = (String)getValueAt(e.getFirstRow(), 0);
 	if (key == null)
@@ -480,5 +482,4 @@
   private static JCheckBox cbLeft = null;
   private static JTextField tfSuggestStopsLimit = null;
-/*  private static Vector< Relation > routes = new Vector< Relation >();*/
   private static Relation currentRoute = null;
   private static Vector< RelationMember > markedWays = new Vector< RelationMember >();
@@ -595,8 +596,8 @@
       /*JComboBox*/ comboBox = new JComboBox();
       comboBox.addItem("bus");
-/*      comboBox.addItem("tram");
+      comboBox.addItem("tram");
       comboBox.addItem("light_rail");
       comboBox.addItem("subway");
-      comboBox.addItem("rail");*/
+      comboBox.addItem("rail");
       requiredTagsTable.setCellEditor(1, 1, new DefaultCellEditor(comboBox));
       rowContent = new Vector< String >();
@@ -1695,4 +1696,32 @@
       if (mainDataSet != null)
       {
+	String stopKey = "";
+	String stopValue = "";
+	if ("bus".equals(currentRoute.get("route")))
+	{
+	  stopKey = "highway";
+	  stopValue = "bus_stop";
+	}
+	else if ("tram".equals(currentRoute.get("route")))
+	{
+	  stopKey = "highway";
+	  stopValue = "tram_stop";
+	}
+	else if ("light_rail".equals(currentRoute.get("route")))
+	{
+	  stopKey = "railway";
+	  stopValue = "station";
+	}
+	else if ("subway".equals(currentRoute.get("route")))
+	{
+	  stopKey = "railway";
+	  stopValue = "station";
+	}
+	else if ("rail".equals(currentRoute.get("route")))
+	{
+	  stopKey = "railway";
+	  stopValue = "station";
+	}
+
 	Collection< Node > nodeCollection = mainDataSet.getNodes();
 	Iterator< Node > nodeIter = nodeCollection.iterator();
@@ -1700,5 +1729,5 @@
 	{
 	  Node currentNode = nodeIter.next();
-	  if ("bus_stop".equals(currentNode.get("highway")))
+	  if (stopValue.equals(currentNode.get(stopKey)))
 	  {
 	    StopReference sr = detectMinDistance
