Index: applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java
===================================================================
--- applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java	(revision 20751)
+++ applications/editors/josm/plugins/public_transport/src/public_transport/StopImporterAction.java	(revision 20752)
@@ -812,22 +812,11 @@
     {
       BoundingXYVisitor box = new BoundingXYVisitor();
-      if (dialog.getWaypointsTable().getSelectedRowCount() > 0)
-      {
-	for (int i = 0; i < waypointTM.getRowCount(); ++i)
-	{
-	  if ((dialog.getWaypointsTable().isRowSelected(i)) &&
-		      (waypointTM.nodes.elementAt(i) != null))
-	  {
-	    waypointTM.nodes.elementAt(i).visit(box);
-	  }
-	}
-      }
-      else
-      {
-	for (int i = 0; i < waypointTM.getRowCount(); ++i)
-	{
-	  if (waypointTM.nodes.elementAt(i) != null)
-	    waypointTM.nodes.elementAt(i).visit(box);
-	}
+      Vector< Integer > consideredLines = getConsideredLines
+        (dialog.getWaypointsTable());
+      for (int i = 0; i < consideredLines.size(); ++i)
+      {
+	int j = consideredLines.elementAt(i);
+	if (waypointTM.nodes.elementAt(j) != null)
+	  waypointTM.nodes.elementAt(j).visit(box);
       }
       if (box.getBounds() == null)
@@ -840,22 +829,11 @@
       OsmPrimitive[] osmp = { null };
       Main.main.getCurrentDataSet().setSelected(osmp);
-      if (dialog.getWaypointsTable().getSelectedRowCount() > 0)
-      {
-	for (int i = 0; i < waypointTM.getRowCount(); ++i)
-	{
-	  if ((dialog.getWaypointsTable().isRowSelected(i)) &&
-		      (waypointTM.nodes.elementAt(i) != null))
-	  {
-	    Main.main.getCurrentDataSet().addSelected(waypointTM.nodes.elementAt(i));
-	  }
-	}
-      }
-      else
-      {
-	for (int i = 0; i < waypointTM.getRowCount(); ++i)
-	{
-	  if (waypointTM.nodes.elementAt(i) != null)
-	    Main.main.getCurrentDataSet().addSelected(waypointTM.nodes.elementAt(i));
-	}
+      Vector< Integer > consideredLines = getConsideredLines
+        (dialog.getWaypointsTable());
+      for (int i = 0; i < consideredLines.size(); ++i)
+      {
+	int j = consideredLines.elementAt(i);
+	if (waypointTM.nodes.elementAt(j) != null)
+	  Main.main.getCurrentDataSet().addSelected(waypointTM.nodes.elementAt(j));
       }
     }
@@ -1058,5 +1036,24 @@
     return node;
   }
-    
+
+  /* returns a collection of all slected lines or
+     a collection of all lines otherwise */
+  public static Vector< Integer > getConsideredLines(JTable table)
+  {
+    int[] selectedLines = table.getSelectedRows();
+    Vector< Integer > consideredLines = new Vector< Integer >();
+    if (selectedLines.length > 0)
+    {
+      for (int i = 0; i < selectedLines.length; ++i)
+	consideredLines.add(selectedLines[i]);
+    }
+    else
+    {
+      for (int i = 0; i < table.getRowCount(); ++i)
+	consideredLines.add(new Integer(i));
+    }
+    return consideredLines;
+  }
+
   private static String timeOf(double t)
   {
