Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorter.java	(revision 8228)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorter.java	(revision 8229)
@@ -29,4 +29,5 @@
         additionalSorters.add(new AssociatedStreetRoleStreetSorter());
         additionalSorters.add(new AssociatedStreetRoleAddressHouseSorter());
+        additionalSorters.add(new PublicTransportRoleStopPlatformSorter());
     }
 
@@ -75,4 +76,22 @@
                 }
             });
+            return list;
+        }
+    }
+
+    /**
+     * Class that sorts the {@code platform} and {@code stop} members of
+     * {@code type=public_transport} relations.
+     */
+    private static class PublicTransportRoleStopPlatformSorter implements AdditionalSorter {
+
+        @Override
+        public boolean acceptsMember(RelationMember m) {
+            return "platform".equals(m.getRole()) || "stop".equals(m.getRole());
+        }
+
+        @Override
+        public List<RelationMember> sortMembers(List<RelationMember> list) {
+            // Retain order from original relation
             return list;
         }
