Index: applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java	(revision 20728)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java	(revision 20729)
@@ -1858,5 +1858,5 @@
 	else if ("tram".equals(currentRoute.get("route")))
 	{
-	  stopKey = "highway";
+	  stopKey = "railway";
 	  stopValue = "tram_stop";
 	}
Index: applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java	(revision 20728)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java	(revision 20729)
@@ -23,4 +23,5 @@
 import javax.swing.DefaultListModel;
 import javax.swing.JButton;
+import javax.swing.JComboBox;
 import javax.swing.JDialog;
 import javax.swing.JFileChooser;
@@ -497,6 +498,4 @@
     public void insertRow(int insPos, WayPoint wp)
     {
-      Node node = createNode(wp.getCoor(), "");
-      
       String[] buf = { "", "" };
       buf[0] = wp.getString("time");
@@ -506,4 +505,7 @@
       if (buf[1] == null)
 	buf[1] = "";
+
+      Node node = createNode(wp.getCoor(), buf[1]);
+      
       if (insPos == -1)
       {
@@ -542,4 +544,5 @@
   private static JTabbedPane tabbedPane = null;
   private static DefaultListModel tracksListModel = null;
+  private static JComboBox cbStoptype = null;
   private static JList tracksList = null;
   private static JTextField tfGPSTimeStart = null;
@@ -622,5 +625,5 @@
       contentPane.setLayout(gridbag);
       
-      /*JLabel*/ label = new JLabel("Time on your GPS device");
+      /*JLabel*/ label = new JLabel("Type of stops to add");
       
       layoutCons.gridx = 0;
@@ -633,4 +636,34 @@
       contentPane.add(label);
       
+      cbStoptype = new JComboBox();
+      cbStoptype.setEditable(false);
+      cbStoptype.addItem("bus");
+      cbStoptype.addItem("tram");
+      cbStoptype.addItem("light_rail");
+      cbStoptype.addItem("subway");
+      cbStoptype.addItem("rail");
+      cbStoptype.setActionCommand("stopImporter.settingsStoptype");
+      cbStoptype.addActionListener(this);
+      
+      layoutCons.gridx = 0;
+      layoutCons.gridy = 1;
+      layoutCons.gridwidth = 1;
+      layoutCons.weightx = 0.0;
+      layoutCons.weighty = 0.0;
+      layoutCons.fill = GridBagConstraints.BOTH;
+      gridbag.setConstraints(cbStoptype, layoutCons);
+      contentPane.add(cbStoptype);
+      
+      /*JLabel*/ label = new JLabel("Time on your GPS device");
+      
+      layoutCons.gridx = 0;
+      layoutCons.gridy = 2;
+      layoutCons.gridwidth = 2;
+      layoutCons.weightx = 0.0;
+      layoutCons.weighty = 0.0;
+      layoutCons.fill = GridBagConstraints.BOTH;
+      gridbag.setConstraints(label, layoutCons);
+      contentPane.add(label);
+      
       tfGPSTimeStart = new JTextField("00:00:00", 15);
       tfGPSTimeStart.setActionCommand("stopImporter.settingsGPSTimeStart");
@@ -638,5 +671,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 1;
+      layoutCons.gridy = 3;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -649,5 +682,5 @@
       
       layoutCons.gridx = 1;
-      layoutCons.gridy = 1;
+      layoutCons.gridy = 3;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -660,5 +693,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 2;
+      layoutCons.gridy = 4;
       layoutCons.gridwidth = 2;
       layoutCons.weightx = 0.0;
@@ -673,5 +706,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 3;
+      layoutCons.gridy = 5;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -684,5 +717,5 @@
       
       layoutCons.gridx = 1;
-      layoutCons.gridy = 3;
+      layoutCons.gridy = 5;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -695,5 +728,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 4;
+      layoutCons.gridy = 6;
       layoutCons.gridwidth = 2;
       layoutCons.weightx = 0.0;
@@ -708,5 +741,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 5;
+      layoutCons.gridy = 7;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -719,5 +752,5 @@
       
       layoutCons.gridx = 1;
-      layoutCons.gridy = 5;
+      layoutCons.gridy = 7;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -730,5 +763,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 6;
+      layoutCons.gridy = 8;
       layoutCons.gridwidth = 2;
       layoutCons.weightx = 0.0;
@@ -743,5 +776,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 7;
+      layoutCons.gridy = 9;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -754,5 +787,5 @@
       
       layoutCons.gridx = 1;
-      layoutCons.gridy = 7;
+      layoutCons.gridy = 9;
       layoutCons.gridwidth = 1;
       layoutCons.weightx = 0.0;
@@ -767,5 +800,5 @@
       
       layoutCons.gridx = 0;
-      layoutCons.gridy = 8;
+      layoutCons.gridy = 10;
       layoutCons.gridwidth = 3;
       layoutCons.weightx = 1.0;
@@ -1374,4 +1407,49 @@
       }
     }
+    else if ("stopImporter.settingsStoptype".equals(event.getActionCommand()))
+    {
+      for (int i = 0; i < waypointTM.getRowCount(); ++i)
+      {
+	if ((Node)waypointTM.nodes.elementAt(i) != null)
+        {
+	  Node node = (Node)waypointTM.nodes.elementAt(i);
+	  node.remove("highway");
+	  node.remove("railway");
+          if ("bus".equals((String)cbStoptype.getSelectedItem()))
+            node.put("highway", "bus_stop");
+          else if ("tram".equals((String)cbStoptype.getSelectedItem()))
+            node.put("railway", "tram_stop");
+          else if ("light_rail".equals((String)cbStoptype.getSelectedItem()))
+            node.put("railway", "station");
+          else if ("subway".equals((String)cbStoptype.getSelectedItem()))
+            node.put("railway", "station");
+          else if ("rail".equals((String)cbStoptype.getSelectedItem()))
+            node.put("railway", "station");
+        }
+      }
+      for (int j = 0; j < tracksListModel.size(); ++j)
+      {
+	TrackReference track = (TrackReference)tracksListModel.elementAt(j);
+	for (int i = 0; i < track.stoplistTM.getRowCount(); ++i)
+	{
+	  if ((Node)track.stoplistTM.nodes.elementAt(i) != null)
+	  {
+	    Node node = (Node)track.stoplistTM.nodes.elementAt(i);
+	    node.remove("highway");
+	    node.remove("railway");
+	    if ("bus".equals((String)cbStoptype.getSelectedItem()))
+	      node.put("highway", "bus_stop");
+	    else if ("tram".equals((String)cbStoptype.getSelectedItem()))
+	      node.put("railway", "tram_stop");
+	    else if ("light_rail".equals((String)cbStoptype.getSelectedItem()))
+	      node.put("railway", "station");
+	    else if ("subway".equals((String)cbStoptype.getSelectedItem()))
+	      node.put("railway", "station");
+	    else if ("rail".equals((String)cbStoptype.getSelectedItem()))
+	      node.put("railway", "station");
+	  }
+	}
+      }
+    }
   }
 
@@ -1489,5 +1567,14 @@
   {
     Node node = new Node(latLon);
-    node.put("highway", "bus_stop");
+    if ("bus".equals((String)cbStoptype.getSelectedItem()))
+      node.put("highway", "bus_stop");
+    else if ("tram".equals((String)cbStoptype.getSelectedItem()))
+      node.put("railway", "tram_stop");
+    else if ("light_rail".equals((String)cbStoptype.getSelectedItem()))
+      node.put("railway", "station");
+    else if ("subway".equals((String)cbStoptype.getSelectedItem()))
+      node.put("railway", "station");
+    else if ("rail".equals((String)cbStoptype.getSelectedItem()))
+      node.put("railway", "station");
     node.put("name", name);
     if (Main.main.getCurrentDataSet() == null)
