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 32218)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java	(revision 32219)
@@ -1,5 +1,8 @@
 package org.openstreetmap.josm.plugins.pt_assistant.utils;
 
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.RelationMember;
+import org.openstreetmap.josm.data.osm.Way;
 
 /**
@@ -36,3 +39,38 @@
 	}
 
+	/**
+	 * 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 !isPTWay(rm);
+
+	}
+
+	/**
+	 * Checks if the relation member refers to a way in a public transport
+	 * route. Some OsmPrimitiveType.WAY have to be excluded because platforms
+	 * can be modeled with ways.
+	 * 
+	 * @param rm relation member to be checked
+	 * @return true if the relation member refers to a way in a public transport route, false otherwise.
+	 */
+	public static boolean isPTWay(RelationMember rm) {
+
+		if (rm.hasRole("") && OsmPrimitiveType.WAY.equals(rm.getType())) {
+			Way way = rm.getWay();
+			if (!way.hasTag("public_transport", "platform") && !way.hasTag("highway", "platform")
+					&& !way.hasTag("railway", "platform")) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
 }
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/GapTest.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/GapTest.java	(revision 32218)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/GapTest.java	(revision 32219)
@@ -41,10 +41,7 @@
 			final List<RelationMember> waysToCheck = new ArrayList<>();
 			for (RelationMember member : members) {
-				if (member.hasRole("") && OsmPrimitiveType.WAY.equals(member.getType())) {
-					Way way = member.getWay();
-					if (!way.hasTag("public_transport", "platform") && !way.hasTag("highway", "platform")
-							&& !way.hasTag("railway", "platform")) {
-						waysToCheck.add(member);
-					}
+
+				if (RouteUtils.isPTWay(member)) {
+					waysToCheck.add(member);
 				}
 			}
@@ -213,11 +210,19 @@
 			// if the error is a single overshoot:
 			if (testError.getCode() == ERROR_CODE_OVERSHOOT) {
-				// commands.add(testError.getFix());
+
 				for (OsmPrimitive primitive : testError.getPrimitives()) {
 					Relation originalRelation = (Relation) primitive;
 					Relation modifiedRelation = new Relation(originalRelation);
 					List<RelationMember> modifiedMembers = new ArrayList<>();
+					// add stops of a public transport route first:
 					for (RelationMember rm : originalRelation.getMembers()) {
-						if (rm.getType().equals(OsmPrimitiveType.WAY) && !overshootList.contains(rm)) {
+						if (RouteUtils.isPTStop(rm)) {
+							modifiedMembers.add(rm);
+						}
+						
+					}
+					// add ways of a public transport route (if they are not overshoots):
+					for (RelationMember rm: originalRelation.getMembers()) {
+						if (RouteUtils.isPTWay(rm) && !overshootList.contains(rm)) {
 							modifiedMembers.add(rm);
 						}
