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 33081)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/PTAssistantPaintVisitor.java	(revision 33082)
@@ -285,7 +285,11 @@
     @Override
     protected void drawNode(Node n, Color color) {
-
+		if (mv == null || g == null) {
+			return;
+		}
         Point p = mv.getPoint(n);
-
+		if (p == null) {
+			return;
+		}
         g.setColor(color);
         g.drawOval(p.x - 5, p.y - 5, 10, 10);
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/NodeChecker.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/NodeChecker.java	(revision 33081)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/NodeChecker.java	(revision 33082)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.data.validation.TestError.Builder;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.StopUtils;
@@ -27,147 +28,153 @@
 public class NodeChecker extends Checker {
 
-    protected NodeChecker(Node node, Test test) {
-        super(node, test);
+	protected NodeChecker(Node node, Test test) {
+		super(node, test);
 
-    }
+	}
 
-    /**
-     * Checks if the given stop_position node belongs to any way
-     */
-    protected void performSolitaryStopPositionTest() {
+	/**
+	 * Checks if the given stop_position node belongs to any way
+	 */
+	protected void performSolitaryStopPositionTest() {
 
-        List<OsmPrimitive> referrers = node.getReferrers();
+		List<OsmPrimitive> referrers = node.getReferrers();
 
-        for (OsmPrimitive referrer : referrers) {
-            if (referrer.getType().equals(OsmPrimitiveType.WAY)) {
-                Way referrerWay = (Way) referrer;
-                if (RouteUtils.isWaySuitableForPublicTransport(referrerWay)) {
-                    return;
-                }
+		for (OsmPrimitive referrer : referrers) {
+			if (referrer.getType().equals(OsmPrimitiveType.WAY)) {
+				Way referrerWay = (Way) referrer;
+				if (RouteUtils.isWaySuitableForPublicTransport(referrerWay)) {
+					return;
+				}
 
-            }
-        }
+			}
+		}
 
-        List<OsmPrimitive> primitives = new ArrayList<>(1);
-        primitives.add(node);
-        TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Stop_position is not part of a way"),
-                PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION, primitives);
-        errors.add(e);
+		List<OsmPrimitive> primitives = new ArrayList<>(1);
+		primitives.add(node);
+		Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION);
+		builder.message(tr("PT: Stop_position is not part of a way"));
+		builder.primitives(primitives);
+		TestError e = builder.build();
+		errors.add(e);
 
-    }
+	}
 
-    /**
-     * Checks if the given platform node belongs to any way
-     */
-    protected void performPlatformPartOfWayTest() {
+	/**
+	 * Checks if the given platform node belongs to any way
+	 */
+	protected void performPlatformPartOfWayTest() {
 
-        List<OsmPrimitive> referrers = node.getReferrers();
+		List<OsmPrimitive> referrers = node.getReferrers();
 
-        for (OsmPrimitive referrer : referrers) {
-            List<Node> primitives = new ArrayList<>(1);
-            primitives.add(node);
-            if (referrer.getType().equals(OsmPrimitiveType.WAY)) {
-                Way referringWay = (Way) referrer;
-                if (RouteUtils.isWaySuitableForPublicTransport(referringWay)) {
-                    TestError e = new TestError(this.test, Severity.WARNING,
-                            tr("PT: Platform should not be part of a way"),
-                            PTAssistantValidatorTest.ERROR_CODE_PLATFORM_PART_OF_HIGHWAY, primitives);
-                    errors.add(e);
-                    return;
-                }
-            }
-        }
-    }
+		for (OsmPrimitive referrer : referrers) {
+			List<Node> primitives = new ArrayList<>(1);
+			primitives.add(node);
+			if (referrer.getType().equals(OsmPrimitiveType.WAY)) {
+				Way referringWay = (Way) referrer;
+				if (RouteUtils.isWaySuitableForPublicTransport(referringWay)) {
+					Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_PLATFORM_PART_OF_HIGHWAY);
+					builder.message(tr("PT: Platform should not be part of a way"));
+					builder.primitives(primitives);
+					TestError e = builder.build();
+					errors.add(e);
+					return;
+				}
+			}
+		}
+	}
 
-    /**
-     * Checks if the given stop_position node belongs to any stop_area relation
-     * @author xamanu
-     */
-    protected void performNodePartOfStopAreaTest() {
+	/**
+	 * Checks if the given stop_position node belongs to any stop_area relation
+	 * 
+	 * @author xamanu
+	 */
+	protected void performNodePartOfStopAreaTest() {
 
-        if (!StopUtils.verifyIfMemberOfStopArea(node)) {
+		if (!StopUtils.verifyIfMemberOfStopArea(node)) {
 
-            List<OsmPrimitive> primitives = new ArrayList<>(1);
-            primitives.add(node);
-            TestError e = new TestError(this.test, Severity.WARNING,
-                    tr("PT: Stop position or platform is not part of a stop area relation"),
-                    PTAssistantValidatorTest.ERROR_CODE_NOT_PART_OF_STOP_AREA, primitives);
-            errors.add(e);
-        }
-    }
+			List<OsmPrimitive> primitives = new ArrayList<>(1);
+			primitives.add(node);
+			Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_NOT_PART_OF_STOP_AREA);
+			builder.message(tr("PT: Stop position or platform is not part of a stop area relation"));
+			builder.primitives(primitives);
+			TestError e = builder.build();
+			errors.add(e);
+		}
+	}
 
-    /**
-     * Fixes errors: solitary stop position and platform which is part of a way.
-     * Asks the user first.
-     *
-     * @param testError test error
-     * @return fix command
-     */
-    protected static Command fixError(TestError testError) {
+	/**
+	 * Fixes errors: solitary stop position and platform which is part of a way.
+	 * Asks the user first.
+	 *
+	 * @param testError
+	 *            test error
+	 * @return fix command
+	 */
+	protected static Command fixError(TestError testError) {
 
-        if (testError.getCode() != PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION
-                && testError.getCode() != PTAssistantValidatorTest.ERROR_CODE_PLATFORM_PART_OF_HIGHWAY) {
-            return null;
-        }
+		if (testError.getCode() != PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION
+				&& testError.getCode() != PTAssistantValidatorTest.ERROR_CODE_PLATFORM_PART_OF_HIGHWAY) {
+			return null;
+		}
 
-        Node problematicNode = (Node) testError.getPrimitives().iterator().next();
+		Node problematicNode = (Node) testError.getPrimitives().iterator().next();
 
-        final int[] userSelection = {JOptionPane.YES_OPTION};
-        final TestError errorParameter = testError;
-        if (SwingUtilities.isEventDispatchThread()) {
+		final int[] userSelection = { JOptionPane.YES_OPTION };
+		final TestError errorParameter = testError;
+		if (SwingUtilities.isEventDispatchThread()) {
 
-            userSelection[0] = showFixNodeTagDialog(errorParameter);
+			userSelection[0] = showFixNodeTagDialog(errorParameter);
 
-        } else {
+		} else {
 
-            try {
-                SwingUtilities.invokeAndWait(new Runnable() {
-                    @Override
-                    public void run() {
-                        userSelection[0] = showFixNodeTagDialog(errorParameter);
-                    }
-                });
-            } catch (InvocationTargetException | InterruptedException e) {
-                e.printStackTrace();
-                return null;
-            }
-        }
+			try {
+				SwingUtilities.invokeAndWait(new Runnable() {
+					@Override
+					public void run() {
+						userSelection[0] = showFixNodeTagDialog(errorParameter);
+					}
+				});
+			} catch (InvocationTargetException | InterruptedException e) {
+				e.printStackTrace();
+				return null;
+			}
+		}
 
-        if (userSelection[0] == JOptionPane.YES_OPTION) {
+		if (userSelection[0] == JOptionPane.YES_OPTION) {
 
-            Node modifiedNode = new Node(problematicNode);
-            if (testError.getCode() == PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION) {
-                modifiedNode.put("public_transport", "platform");
-                ChangeCommand command = new ChangeCommand(problematicNode, modifiedNode);
-                return command;
-            } else {
-                modifiedNode.put("public_transport", "stop_position");
-                ChangeCommand command = new ChangeCommand(problematicNode, modifiedNode);
-                return command;
-            }
-        }
+			Node modifiedNode = new Node(problematicNode);
+			if (testError.getCode() == PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION) {
+				modifiedNode.put("public_transport", "platform");
+				ChangeCommand command = new ChangeCommand(problematicNode, modifiedNode);
+				return command;
+			} else {
+				modifiedNode.put("public_transport", "stop_position");
+				ChangeCommand command = new ChangeCommand(problematicNode, modifiedNode);
+				return command;
+			}
+		}
 
-        return null;
+		return null;
 
-    }
+	}
 
-    private static int showFixNodeTagDialog(TestError e) {
-        Node problematicNode = (Node) e.getPrimitives().iterator().next();
-        // Main.map.mapView.zoomTo(problematicNode.getCoor());
-        // zoom to problem:
-        Collection<OsmPrimitive> primitives = new ArrayList<>(1);
-        primitives.add(problematicNode);
-        AutoScaleAction.zoomTo(primitives);
+	private static int showFixNodeTagDialog(TestError e) {
+		Node problematicNode = (Node) e.getPrimitives().iterator().next();
+		// Main.map.mapView.zoomTo(problematicNode.getCoor());
+		// zoom to problem:
+		Collection<OsmPrimitive> primitives = new ArrayList<>(1);
+		primitives.add(problematicNode);
+		AutoScaleAction.zoomTo(primitives);
 
-        String[] options = {tr("Yes"), tr("No")};
-        String message;
-        if (e.getCode() == PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION) {
-            message = "Do you want to change the tag public_transport=stop_position to public_transport=platform?";
-        } else {
-            message = "Do you want to change the tag public_transport=platform to public_transport=stop_position?";
-        }
-        return JOptionPane.showOptionDialog(null, message, tr("PT_Assistant Message"), JOptionPane.YES_NO_OPTION,
-                JOptionPane.QUESTION_MESSAGE, null, options, 0);
-    }
+		String[] options = { tr("Yes"), tr("No") };
+		String message;
+		if (e.getCode() == PTAssistantValidatorTest.ERROR_CODE_SOLITARY_STOP_POSITION) {
+			message = "Do you want to change the tag public_transport=stop_position to public_transport=platform?";
+		} else {
+			message = "Do you want to change the tag public_transport=platform to public_transport=stop_position?";
+		}
+		return JOptionPane.showOptionDialog(null, message, tr("PT_Assistant Message"), JOptionPane.YES_NO_OPTION,
+				JOptionPane.QUESTION_MESSAGE, null, options, 0);
+	}
 
 }
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssistantValidatorTest.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssistantValidatorTest.java	(revision 33081)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssistantValidatorTest.java	(revision 33082)
@@ -25,4 +25,5 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.data.validation.TestError.Builder;
 import org.openstreetmap.josm.plugins.pt_assistant.PTAssistantPlugin;
 import org.openstreetmap.josm.plugins.pt_assistant.actions.FixTask;
@@ -550,6 +551,9 @@
         List<Relation> primitives = new ArrayList<>(1);
         primitives.add(r);
+        Builder builder = TestError.builder(this, Severity.WARNING, ERROR_CODE_DIRECTION);
+        builder.message(tr("PT: dummy test warning"));
+        builder.primitives(primitives);
         errors.add(
-                new TestError(this, Severity.WARNING, tr("PT: dummy test warning"), ERROR_CODE_DIRECTION, primitives));
+                builder.build());
     }
 
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/RouteChecker.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/RouteChecker.java	(revision 33081)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/RouteChecker.java	(revision 33082)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.data.validation.TestError.Builder;
 import org.openstreetmap.josm.gui.dialogs.relation.sort.RelationSorter;
 import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType;
@@ -64,7 +65,8 @@
 
             if (!hasGap(sortedMembers)) {
-                TestError e = new TestError(this.test, Severity.WARNING,
-                        tr("PT: Route contains a gap that can be fixed by sorting"),
-                        PTAssistantValidatorTest.ERROR_CODE_SORTING, relation);
+                Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_SORTING);
+                builder.message(tr("PT: Route contains a gap that can be fixed by sorting"));
+                builder.primitives(relation);
+                TestError e = builder.build();
                 this.errors.add(e);
 
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/SegmentChecker.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/SegmentChecker.java	(revision 33081)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/SegmentChecker.java	(revision 33082)
@@ -26,4 +26,5 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.data.validation.TestError.Builder;
 import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor;
@@ -70,6 +71,9 @@
             List<OsmPrimitive> highlighted = new ArrayList<>(1);
             highlighted.add(rm.getMember());
-            TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Relation member roles do not match tags"),
-                    PTAssistantValidatorTest.ERROR_CODE_RELAITON_MEMBER_ROLES, primitives, highlighted);
+            Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_RELAITON_MEMBER_ROLES);
+            builder.message(tr("PT: Relation member roles do not match tags"));
+            builder.primitives(primitives);
+            builder.highlight(highlighted);
+            TestError e = builder.build();
             this.errors.add(e);
         }
@@ -162,7 +166,9 @@
                 List<OsmPrimitive> highlighted = new ArrayList<>(1);
                 highlighted.add(endStop.getPlatform());
-                TestError e = new TestError(this.test, Severity.WARNING,
-                        tr("PT: Route should start and end with a stop_position"),
-                        PTAssistantValidatorTest.ERROR_CODE_END_STOP, primitives, highlighted);
+                Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_END_STOP);
+                builder.message(tr("PT: Route should start and end with a stop_position"));
+                builder.primitives(primitives);
+                builder.highlight(highlighted);
+                TestError e = builder.build();
                 this.errors.add(e);
                 return;
@@ -181,6 +187,9 @@
                 highlighted.addAll(stopPositionsOfThisRoute);
 
-                TestError e = new TestError(this.test, Severity.WARNING, tr("PT: First or last way needs to be split"),
-                        PTAssistantValidatorTest.ERROR_CODE_SPLIT_WAY, primitives, highlighted);
+                Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_SPLIT_WAY);
+                builder.message(tr("PT: First or last way needs to be split"));
+                builder.primitives(primitives);
+                builder.highlight(highlighted);
+                TestError e = builder.build();
                 this.errors.add(e);
             }
@@ -197,6 +206,9 @@
                 List<OsmPrimitive> highlighted = new ArrayList<>();
                 highlighted.add(endStop.getStopPosition());
-                TestError e = new TestError(this.test, Severity.WARNING, tr("PT: First or last way needs to be split"),
-                        PTAssistantValidatorTest.ERROR_CODE_SPLIT_WAY, primitives, highlighted);
+                Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_SPLIT_WAY);
+                builder.message(tr("PT: First or last way needs to be split"));
+                builder.primitives(primitives);
+                builder.highlight(highlighted);
+                TestError e = builder.build();
                 this.errors.add(e);
             }
@@ -284,6 +296,9 @@
                     List<OsmPrimitive> highlighted = new ArrayList<>();
                     highlighted.add(startWay);
-                    TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Problem in the route segment"),
-                            PTAssistantValidatorTest.ERROR_CODE_STOP_BY_STOP, primitives, highlighted);
+                    Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_STOP_BY_STOP);
+                    builder.message(tr("PT: Problem in the route segment"));
+                    builder.primitives(primitives);
+                    builder.highlight(highlighted);
+                    TestError e = builder.build();
                     this.errors.add(e);
                     PTRouteSegment routeSegment = new PTRouteSegment(startStop, endStop, segmentWays, relation);
@@ -321,6 +336,9 @@
         }
         highlighted.add(stopPrimitive);
-        TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Stop not served"),
-                PTAssistantValidatorTest.ERROR_CODE_STOP_NOT_SERVED, primitives, highlighted);
+        Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_STOP_NOT_SERVED);
+        builder.message(tr("PT: Stop not served"));
+        builder.primitives(primitives);
+        builder.highlight(highlighted);
+        TestError e = builder.build();
         this.errors.add(e);
     }
@@ -444,6 +462,9 @@
                     List<OsmPrimitive> highlighted = new ArrayList<>();
                     highlighted.addAll(current.getWays());
-                    TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Problem in the route segment"),
-                            PTAssistantValidatorTest.ERROR_CODE_STOP_BY_STOP, primitives, highlighted);
+                    Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_STOP_BY_STOP);
+                    builder.message(tr("PT: Problem in the route segment"));
+                    builder.primitives(primitives);
+                    builder.highlight(highlighted);
+                    TestError e = builder.build();
                     this.errors.add(e);
                     return false;
@@ -464,7 +485,10 @@
 
                     highlighted.addAll(current.getWays());
-
-                    TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Problem in the route segment"),
-                            PTAssistantValidatorTest.ERROR_CODE_STOP_BY_STOP, primitives, highlighted);
+                    
+                    Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_STOP_BY_STOP);
+                    builder.message(tr("PT: Problem in the route segment"));
+                    builder.primitives(primitives);
+                    builder.highlight(highlighted);
+                    TestError e = builder.build();
                     this.errors.add(e);
                     return false;
@@ -843,15 +867,13 @@
         // prepare the variables for the key listener:
         final TestError testErrorParameter = testError;
-
-        // add the key listener:
+        
+//        // add the key listener:
         Main.map.mapView.requestFocus();
-        Main.map.mapView.addKeyListener(new KeyListener() {
-
-            @Override
+        Main.map.mapView.addKeyListener(new KeyListener() { 
+        	
             public void keyTyped(KeyEvent e) {
-                // TODO Auto-generated method stub
-            }
-
-            @Override
+                 //TODO Auto-generated method stub
+            }
+
             public void keyPressed(KeyEvent e) {
                 Character typedKey = e.getKeyChar();
@@ -869,5 +891,4 @@
             }
 
-            @Override
             public void keyReleased(KeyEvent e) {
                 // TODO Auto-generated method stub
@@ -939,5 +960,5 @@
 
     }
-
+		
     /**
      * Carries out the fix (i.e. modifies the route) when there is only one fix
@@ -963,5 +984,5 @@
             });
         }
-
+		
         // wait:
         synchronized (SegmentChecker.class) {
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/StopChecker.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/StopChecker.java	(revision 33081)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/StopChecker.java	(revision 33082)
@@ -14,4 +14,5 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.data.validation.TestError.Builder;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.StopUtils;
 
@@ -47,6 +48,8 @@
         List<OsmPrimitive> primitives = new ArrayList<>(1);
         primitives.add(relation);
-        TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Stop area relation has no stop position"),
-                PTAssistantValidatorTest.ERROR_CODE_STOP_AREA_NO_STOPS, primitives);
+        Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_STOP_AREA_NO_STOPS);
+        builder.message(tr("PT: Stop area relation has no stop position"));
+        builder.primitives(primitives);
+        TestError e = builder.build();
         errors.add(e);
     }
@@ -67,6 +70,8 @@
         List<OsmPrimitive> primitives = new ArrayList<>(1);
         primitives.add(relation);
-        TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Stop area relation has no platform"),
-                PTAssistantValidatorTest.ERROR_CODE_STOP_AREA_NO_PLATFORM, primitives);
+        Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_STOP_AREA_NO_PLATFORM);
+        builder.message(tr("PT: Stop area relation has no platform"));
+        builder.primitives(primitives);
+        TestError e = builder.build();
         errors.add(e);
 
@@ -121,7 +126,8 @@
         List<OsmPrimitive> primitives = new ArrayList<>(1);
         primitives.add(relation);
-        TestError e = new TestError(this.test, Severity.WARNING,
-                tr("PT: Route relations of stop position(s) and platform(s) of stop area members diverge"),
-                PTAssistantValidatorTest.ERROR_CODE_STOP_AREA_COMPARE_RELATIONS, primitives);
+        Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_STOP_AREA_COMPARE_RELATIONS);
+        builder.message(tr("PT: Route relations of stop position(s) and platform(s) of stop area members diverge"));
+        builder.primitives(primitives);
+        TestError e = builder.build();
         errors.add(e);
     }
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 33081)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java	(revision 33082)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
+import org.openstreetmap.josm.data.validation.TestError.Builder;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
 
@@ -114,7 +115,9 @@
                     List<Way> highlighted = new ArrayList<>(1);
                     highlighted.add(way);
-                    TestError e = new TestError(this.test, Severity.WARNING,
-                            tr("PT: Route type does not match the type of the road it passes on"),
-                            PTAssistantValidatorTest.ERROR_CODE_ROAD_TYPE, primitives, highlighted);
+                    Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_ROAD_TYPE);
+                    builder.message(tr("PT: Route type does not match the type of the road it passes on"));
+                    builder.primitives(primitives);
+                    builder.highlight(highlighted);
+                    TestError e = builder.build();
                     errors.add(e);
 
@@ -126,6 +129,9 @@
                     List<Way> highlighted = new ArrayList<>(1);
                     highlighted.add(way);
-                    TestError e = new TestError(this.test, Severity.WARNING, tr("PT: Road is under construction"),
-                            PTAssistantValidatorTest.ERROR_CODE_CONSTRUCTION, primitives, highlighted);
+                    Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_CONSTRUCTION);
+                    builder.message(tr("PT: Road is under construction"));
+                    builder.primitives(primitives);
+                    builder.highlight(highlighted);
+                    TestError e = builder.build();
                     errors.add(e);
                 }
@@ -213,7 +219,9 @@
 
         for (Set<Way> currentSet : listOfSets) {
-            TestError e = new TestError(this.test, Severity.WARNING,
-                    tr("PT: Route passes a oneway road in the wrong direction"),
-                    PTAssistantValidatorTest.ERROR_CODE_DIRECTION, primitives, currentSet);
+            Builder builder = TestError.builder(this.test, Severity.WARNING, PTAssistantValidatorTest.ERROR_CODE_DIRECTION);
+            builder.message(tr("PT: Route passes a oneway road in the wrong direction"));
+            builder.primitives(primitives);
+            builder.highlight(currentSet);
+            TestError e = builder.build();
             this.errors.add(e);
         }
