Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTRouteDataManager.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTRouteDataManager.java	(revision 33452)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTRouteDataManager.java	(revision 33453)
@@ -50,5 +50,5 @@
         for (RelationMember member : this.relation.getMembers()) {
 
-            if (RouteUtils.isPTStop(member)) {
+            if (PTStop.isPTStop(member)) {
 
                 // First, check if the stop already exists (i.e. there are
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTStop.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTStop.java	(revision 33452)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/data/PTStop.java	(revision 33453)
@@ -189,4 +189,16 @@
 
     /**
+     * Checks if the relation member refers to a stop in a public transport
+     * route. Some stops can be modeled with ways.
+     *
+     * @param rm
+     *            relation member to be checked
+     * @return true if the relation member refers to a stop, false otherwise
+     */
+    public static boolean isPTStop(RelationMember rm) {
+        return isPTStopPosition(rm) || isPTPlatform(rm);
+    }
+
+    /**
      * checks whether the given relation member matches a Stop Position or not
      * @param rm member to check
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 33452)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantPaintVisitor.java	(revision 33453)
@@ -13,4 +13,5 @@
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.openstreetmap.josm.Main;
@@ -23,4 +24,5 @@
 import org.openstreetmap.josm.data.validation.PaintVisitor;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.plugins.pt_assistant.data.PTStop;
 import org.openstreetmap.josm.plugins.pt_assistant.data.PTWay;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
@@ -58,8 +60,8 @@
         for (RelationMember rm : r.getMembers()) {
 
-            if (RouteUtils.isPTStop(rm)) {
-
-                drawStop(rm.getMember());
-
+            if (PTStop.isPTStopPosition(rm)) {
+                drawStop(rm.getMember(), true);
+            } else if (PTStop.isPTPlatform(rm)) {
+                drawStop(rm.getMember(), false);
             } else if (RouteUtils.isPTWay(rm)) {
                 if (rm.isWay()) {
@@ -76,27 +78,29 @@
 
         for (RelationMember rm : r.getMembers()) {
-            if (RouteUtils.isPTStop(rm) || (rm.getMember().isIncomplete() && (rm.isNode() || rm.hasRole("stop")
+            if (PTStop.isPTStop(rm) || (rm.getMember().isIncomplete() && (rm.isNode() || rm.hasRole("stop")
                     || rm.hasRole("stop_entry_only") || rm.hasRole("stop_exit_only") || rm.hasRole("platform")
                     || rm.hasRole("platform_entry_only") || rm.hasRole("platform_exit_only")))) {
 
-                String label = "";
+                StringBuilder sb = new StringBuilder();
 
                 if (stopOrderMap.containsKey(rm.getUniqueId())) {
-                    label = stopOrderMap.get(rm.getUniqueId());
-                    label = label + ";" + stopCount;
+                    sb.append(stopOrderMap.get(rm.getUniqueId()))
+                        .append(";")
+                        .append(stopCount);
                 } else {
                     if (r.hasKey("ref")) {
-                        label = label + r.get("ref");
+                        sb.append(r.get("ref"));
                     } else if (r.hasKey("name")) {
-                        label = label + r.get("name");
+                        sb.append(r.get("name"));
                     } else {
-                        label = "NA";
+                        sb.append("NA");
                     }
-                    label = label + " - " + stopCount;
-                }
-
-                stopOrderMap.put(rm.getUniqueId(), label);
+                    sb.append(" - ")
+                        .append(stopCount);
+                }
+
+                stopOrderMap.put(rm.getUniqueId(), sb.toString());
                 try {
-                    drawStopLabel(rm.getMember(), label);
+                    drawStopLabel(rm.getMember(), sb.toString());
                 } catch (NullPointerException ex) {
                     // do nothing
@@ -164,5 +168,5 @@
                 continue;
             }
-            this.drawSegment(lastN, n, new Color(128, 0, 128, 100), oneway);
+            drawSegment(lastN, n, new Color(128, 0, 128, 100), oneway);
             lastN = n;
         }
@@ -281,5 +285,5 @@
     protected void drawNode(Node n, Color color) {
         if (mv == null || g == null) {
-            ;
+            return;
         }
         Point p = mv.getPoint(n);
@@ -297,5 +301,5 @@
      * @param primitive primitive
      */
-    protected void drawStop(OsmPrimitive primitive) {
+    protected void drawStop(OsmPrimitive primitive, Boolean stopPosition) {
 
         // find the point to which the stop visualization will be linked:
@@ -306,5 +310,5 @@
         g.setColor(Color.BLUE);
 
-        if (primitive.hasTag("public_transport", "stop_position") && p != null) {
+        if (stopPosition) {
             g.fillOval(p.x - 8, p.y - 8, 16, 16);
         } else {
@@ -359,12 +363,12 @@
         Collections.sort(parentsLabelList, new RefTagComparator());
 
-        String parentsLabel = "";
+        StringBuilder sb = new StringBuilder();
         for (String s : parentsLabelList) {
-            parentsLabel = parentsLabel + s + ";";
-        }
-
-        if (!parentsLabel.equals("")) {
+            sb.append(s).append(";");
+        }
+
+        if (sb.length() > 0) {
             // remove the last semicolon:
-            parentsLabel = parentsLabel.substring(0, parentsLabel.length() - 1);
+            String parentsLabel = sb.substring(0, sb.length() - 1);
 
             g.setColor(new Color(255, 20, 147));
@@ -416,6 +420,6 @@
 
             try {
-                int firstNumber1 = Integer.valueOf(firstNumberString1);
-                int firstNumber2 = Integer.valueOf(firstNumberString2);
+                int firstNumber1 = Integer.parseInt(firstNumberString1);
+                int firstNumber2 = Integer.parseInt(firstNumberString2);
                 if (firstNumber1 > firstNumber2) {
                     return 1;
@@ -443,5 +447,5 @@
             HashMap<Way, List<Character>> wayColoring) {
 
-        drawFixVariantsWithParallelLines(wayColoring, fixVariants.size());
+        drawFixVariantsWithParallelLines(wayColoring);
 
         Color[] colors = {
@@ -457,7 +461,7 @@
         double letterY = Main.map.mapView.getBounds().getMinY() + 100;
 
-        for (Character c : fixVariants.keySet()) {
+        for (Entry<Character, List<PTWay>> entry : fixVariants.entrySet()) {
+            Character c = entry.getKey();
             if (fixVariants.get(c) != null) {
-                // drawFixVariant(fixVariants.get(c), colors[colorIndex % 5]);
                 drawFixVariantLetter(c.toString(), colors[colorIndex % 5], letterX, letterY);
                 colorIndex++;
@@ -483,5 +487,5 @@
     }
 
-    protected void drawFixVariantsWithParallelLines(Map<Way, List<Character>> wayColoring, int numberOfFixVariants) {
+    protected void drawFixVariantsWithParallelLines(Map<Way, List<Character>> wayColoring) {
 
         HashMap<Character, Color> colors = new HashMap<>();
@@ -492,5 +496,6 @@
         colors.put('E', new Color(0, 255, 255, 200));
 
-        for (Way way : wayColoring.keySet()) {
+        for (Entry<Way, List<Character>> entry : wayColoring.entrySet()) {
+            Way way = entry.getKey();
             List<Character> letterList = wayColoring.get(way);
             List<Color> wayColors = new ArrayList<>();
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java	(revision 33452)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java	(revision 33453)
@@ -77,24 +77,4 @@
 
     /**
-     * Checks if the relation member refers to a stop in a public transport
-     * route. Some stops can be modeled with ways.
-     *
-     * @param rm
-     *            relation member to be checked
-     * @return true if the relation member refers to a stop, false otherwise
-     */
-    public static boolean isPTStop(RelationMember rm) {
-
-        if (rm.getType().equals(OsmPrimitiveType.NODE)) {
-                return true;
-        }
-
-        return (rm.getType().equals(OsmPrimitiveType.WAY))
-            && (rm.getWay().hasTag("public_transport", "platform")
-                    || rm.getWay().hasTag("highway", "platform")
-                    || rm.getWay().hasTag("railway", "platform"));
-    }
-
-    /**
      * Checks if the relation member refers to a way in a public transport
      * route. Some OsmPrimitiveType.WAY have to be excluded because platforms
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/Checker.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/Checker.java	(revision 33452)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/Checker.java	(revision 33453)
@@ -20,6 +20,6 @@
 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.plugins.pt_assistant.data.PTStop;
 import org.openstreetmap.josm.plugins.pt_assistant.gui.PTAssistantLayerManager;
-import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
 
 /**
@@ -73,5 +73,5 @@
         for (RelationMember rm : r.getMembers()) {
 
-            if (RouteUtils.isPTStop(rm)) {
+            if (PTStop.isPTStop(rm)) {
 
                 if (rm.getMember().hasTag("public_transport", "stop_position")) {
@@ -110,5 +110,5 @@
         for (RelationMember rm : r.getMembers()) {
 
-            if (!RouteUtils.isPTStop(rm)) {
+            if (!PTStop.isPTStop(rm)) {
 
                 if (rm.hasRole("forward") || rm.hasRole("backward")) {
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java	(revision 33452)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java	(revision 33453)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.data.validation.TestError;
 import org.openstreetmap.josm.data.validation.TestError.Builder;
+import org.openstreetmap.josm.plugins.pt_assistant.data.PTStop;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
 
@@ -413,5 +414,5 @@
         // copy PT stops first, PT ways last:
         for (RelationMember rm : originalRelation.getMembers()) {
-            if (RouteUtils.isPTStop(rm)) {
+            if (PTStop.isPTStop(rm)) {
 
                 if (rm.getRole().equals("stop_position")) {
