Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 18950)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 18951)
@@ -69,4 +69,5 @@
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.spi.preferences.Config;
+import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.InputMapUtils;
@@ -588,10 +589,8 @@
      */
     public void updateSelection(Collection<? extends OsmPrimitive> newSelection) {
-        if (!Config.getPref().getBoolean(ValidatorPrefHelper.PREF_FILTER_BY_SELECTION, false))
-            return;
-        if (newSelection.isEmpty()) {
+        if (newSelection.isEmpty() || !Config.getPref().getBoolean(ValidatorPrefHelper.PREF_FILTER_BY_SELECTION, false))
             tree.setFilter(null);
-        }
-        tree.setFilter(new HashSet<>(newSelection));
+        else
+            tree.setFilter(new HashSet<>(newSelection));
     }
 
@@ -731,3 +730,15 @@
         }
     }
+
+    @Override
+    public void preferenceChanged(PreferenceChangeEvent e) {
+        super.preferenceChanged(e);
+        // see #23430: update selection so that filters are applied
+        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
+        if (ds != null) {
+            updateSelection(ds.getAllSelected());
+        }
+
+    }
+
 }
