Index: trunk/src/org/openstreetmap/josm/data/validation/PaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/PaintVisitor.java	(revision 10008)
+++ trunk/src/org/openstreetmap/josm/data/validation/PaintVisitor.java	(revision 10009)
@@ -121,11 +121,11 @@
         if (!paintedPoints.contains(pp)) {
             Point p = mv.getPoint(n);
+
+            if (selected) {
+                g.setColor(getHighlightColor());
+                g.fillOval(p.x - 5, p.y - 5, 10, 10);
+            }
             g.setColor(color);
-
-            if (selected) {
-                g.fillOval(p.x - 5, p.y - 5, 10, 10);
-            } else {
-                g.drawOval(p.x - 5, p.y - 5, 10, 10);
-            }
+            g.drawOval(p.x - 5, p.y - 5, 10, 10);
             paintedPoints.add(pp);
         }
@@ -140,5 +140,4 @@
      */
     protected void drawSegment(Point p1, Point p2, Color color) {
-        g.setColor(color);
 
         double t = Math.atan2(p2.x - p1.x, p2.y - p1.y);
@@ -147,4 +146,5 @@
         int deg = (int) Math.toDegrees(t);
         if (selected) {
+            g.setColor(getHighlightColor());
             int[] x = new int[] {(int) (p1.x + cosT), (int) (p2.x + cosT),
                                  (int) (p2.x - cosT), (int) (p1.x - cosT)};
@@ -154,12 +154,12 @@
             g.fillArc(p1.x - 5, p1.y - 5, 10, 10, deg,  180);
             g.fillArc(p2.x - 5, p2.y - 5, 10, 10, deg, -180);
-        } else {
-            g.drawLine((int) (p1.x + cosT), (int) (p1.y - sinT),
-                       (int) (p2.x + cosT), (int) (p2.y - sinT));
-            g.drawLine((int) (p1.x - cosT), (int) (p1.y + sinT),
-                       (int) (p2.x - cosT), (int) (p2.y + sinT));
-            g.drawArc(p1.x - 5, p1.y - 5, 10, 10, deg,  180);
-            g.drawArc(p2.x - 5, p2.y - 5, 10, 10, deg, -180);
-        }
+        }
+        g.setColor(color);
+        g.drawLine((int) (p1.x + cosT), (int) (p1.y - sinT),
+                (int) (p2.x + cosT), (int) (p2.y - sinT));
+        g.drawLine((int) (p1.x - cosT), (int) (p1.y + sinT),
+                (int) (p2.x - cosT), (int) (p2.y + sinT));
+        g.drawArc(p1.x - 5, p1.y - 5, 10, 10, deg,  180);
+        g.drawArc(p2.x - 5, p2.y - 5, 10, 10, deg, -180);
     }
 
@@ -259,4 +259,12 @@
 
     /**
+     * Gets the color to draw highlight markers with.
+     * @return The color.
+     */
+    private Color getHighlightColor() {
+        return new Color(color.getRed(), color.getGreen(), color.getBlue(), (int) (color.getAlpha() * .4));
+    }
+
+    /**
      * Clears the internal painted objects collections.
      */
