Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/RoadTypeTest.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/RoadTypeTest.java	(revision 32416)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/RoadTypeTest.java	(revision 32417)
@@ -49,35 +49,58 @@
 				// be a route of public_transport:version 2
 				boolean isCorrectRoadType = true;
+				boolean isUnderConstruction = false;
+
 				if (r.hasTag("route", "bus") || r.hasTag("route", "share_taxi")) {
 					if (!RouteUtils.isWaySuitableForBuses(way)) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("highway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (r.hasTag("route", "trolleybus")) {
 					if (!(RouteUtils.isWaySuitableForBuses(way) && way.hasTag("trolley_wire", "yes"))) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("highway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (r.hasTag("route", "tram")) {
 					if (!way.hasTag("railway", "tram")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (r.hasTag("route", "subway")) {
 					if (!r.hasTag("railway", "subway")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (r.hasTag("route", "light_rail")) {
 					if (!r.hasTag("raiilway", "subway")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (r.hasTag("route", "light_rail")) {
 					if (!r.hasTag("railway", "light_rail")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (r.hasTag("route", "train")) {
 					if (!r.hasTag("railway", "train")) {
 						isCorrectRoadType = false;
 					}
-				}
-
-				if (!isCorrectRoadType) {
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
+				}
+
+				if (!isCorrectRoadType && !isUnderConstruction) {
 
 					List<Relation> primitives = new ArrayList<>(1);
@@ -90,5 +113,5 @@
 				}
 				
-				if ((way.hasTag("highway", "construction") || way.hasTag("railway", "construction")) && way.hasKey("construction")) {
+				if (isUnderConstruction) {
 					List<Relation> primitives = new ArrayList<>(1);
 					primitives.add(r);
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 32416)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java	(revision 32417)
@@ -53,35 +53,57 @@
 
 				boolean isCorrectRoadType = true;
+				boolean isUnderConstruction = false;
 				if (relation.hasTag("route", "bus") || relation.hasTag("route", "share_taxi")) {
 					if (!isWaySuitableForBuses(way)) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("highway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (relation.hasTag("route", "trolleybus")) {
 					if (!(isWaySuitableForBuses(way) && way.hasTag("trolley_wire", "yes"))) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("highway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (relation.hasTag("route", "tram")) {
 					if (!way.hasTag("railway", "tram")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (relation.hasTag("route", "subway")) {
 					if (!relation.hasTag("railway", "subway")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (relation.hasTag("route", "light_rail")) {
 					if (!relation.hasTag("raiilway", "subway")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (relation.hasTag("route", "light_rail")) {
 					if (!relation.hasTag("railway", "light_rail")) {
 						isCorrectRoadType = false;
 					}
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
 				} else if (relation.hasTag("route", "train")) {
 					if (!relation.hasTag("railway", "train")) {
 						isCorrectRoadType = false;
 					}
-				}
-
-				if (!isCorrectRoadType) {
+					if (way.hasTag("railway", "construction") && way.hasKey("construction")) {
+						isUnderConstruction = true;
+					}
+				}
+
+				if (!isCorrectRoadType && !isUnderConstruction) {
 
 					List<Relation> primitives = new ArrayList<>(1);
@@ -96,5 +118,5 @@
 				}
 				
-				if ((way.hasTag("highway", "construction") || way.hasTag("railway", "construction")) && way.hasKey("construction")) {
+				if (isUnderConstruction) {
 					List<Relation> primitives = new ArrayList<>(1);
 					primitives.add(relation);
