Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 12950)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 12951)
@@ -50,4 +50,5 @@
 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;
@@ -319,5 +320,5 @@
             tree.resetErrors();
             OsmValidator.saveIgnoredErrors();
-            MainApplication.getMap().repaint();
+            MainApplication.getLayerManager().getLayersOfType(ValidatorLayer.class).forEach(Layer::invalidate);
         }
     }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 12950)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 12951)
@@ -232,9 +232,10 @@
 
                 errorsByDescription.forEach((description, errors) -> {
+                    boolean emptyDescription = description == null || description.isEmpty();
                     // Message node
                     final String msg;
                     if (groupNode != null) {
                         msg = tr("{0} ({1})", description, errors.size());
-                    } else if (description == null || description.isEmpty()) {
+                    } else if (emptyDescription) {
                         msg = tr("{0} ({1})", message, errors.size());
                     } else {
@@ -248,5 +249,5 @@
                     }
 
-                    if (oldSelectedRows.contains(description)) {
+                    if (oldSelectedRows.contains(description) || (emptyDescription && oldSelectedRows.contains(message))) {
                         if (groupNode != null) {
                             expandedPaths.add(new TreePath(new Object[] {rootNode, severityNode, groupNode, messageNode}));
@@ -381,6 +382,5 @@
      */
     public void resetErrors() {
-        List<TestError> e = new ArrayList<>(errors);
-        setErrors(e);
+        setErrors(new ArrayList<>(errors));
     }
 
