Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 13147)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 13149)
@@ -45,10 +45,8 @@
 import org.openstreetmap.josm.data.validation.ValidatorVisitor;
 import org.openstreetmap.josm.gui.MainApplication;
-import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.PopupMenuHandler;
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.dialogs.validator.ValidatorTreePanel;
-import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
@@ -320,5 +318,5 @@
             tree.resetErrors();
             OsmValidator.saveIgnoredErrors();
-            MainApplication.getLayerManager().getLayersOfType(ValidatorLayer.class).forEach(Layer::invalidate);
+            invalidateValidatorLayers();
         }
     }
@@ -477,4 +475,9 @@
         @Override
         public void mouseClicked(MouseEvent e) {
+            TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
+            if (selPath == null) {
+                tree.clearSelection();
+            }
+
             fixButton.setEnabled(false);
             if (ignoreButton != null) {
@@ -501,5 +504,6 @@
         }
 
-        @Override public void launch(MouseEvent e) {
+        @Override
+        public void launch(MouseEvent e) {
             TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
             if (selPath == null)
@@ -510,5 +514,4 @@
             super.launch(e);
         }
-
     }
 
@@ -529,8 +532,5 @@
             fixButton.setEnabled(hasFixes);
             popupMenuHandler.setPrimitives(sel);
-            MapFrame map = MainApplication.getMap();
-            if (map != null) {
-                map.repaint();
-            }
+            invalidateValidatorLayers();
         }
     }
@@ -648,5 +648,5 @@
                 SwingUtilities.invokeAndWait(() -> {
                     MainApplication.undoRedo.afterAdd();
-                    MainApplication.getLayerManager().getLayersOfType(ValidatorLayer.class).forEach(ValidatorLayer::invalidate);
+                    invalidateValidatorLayers();
                     tree.resetErrors();
                 });
@@ -659,3 +659,7 @@
         }
     }
+
+    private static void invalidateValidatorLayers() {
+        MainApplication.getLayerManager().getLayersOfType(ValidatorLayer.class).forEach(ValidatorLayer::invalidate);
+    }
 }
