Index: src/org/openstreetmap/josm/data/validation/ValidationTask.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/ValidationTask.java	(revision 18958)
+++ src/org/openstreetmap/josm/data/validation/ValidationTask.java	(working copy)
@@ -100,10 +100,12 @@
             this.errors.removeIf(error -> error.getSeverity().getLevel() >= Severity.OTHER.getLevel());
         }
 
-        if (!GraphicsEnvironment.isHeadless() && MainApplication.getMap() != null && (!beforeUpload || !errors.isEmpty())) {
+        if (!GraphicsEnvironment.isHeadless() && MainApplication.getMap() != null) {
             // update GUI on Swing EDT
             GuiHelper.runInEDT(() -> {
                 MapFrame map = MainApplication.getMap();
+                if (!map.validatorDialog.isShowing() && errors.isEmpty() && beforeUpload)
+                    return;
                 map.validatorDialog.unfurlDialog();
                 map.validatorDialog.tree.setErrors(errors);
                 //FIXME: nicer way to find / invalidate the corresponding error layer
