Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidatorDialog.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidatorDialog.java	(revision 22687)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidatorDialog.java	(revision 22688)
@@ -84,6 +84,6 @@
     public ValidatorDialog(OSMValidatorPlugin plugin) {
         super(tr("Validation errors"), "validator", tr("Open the validation window."),
-        Shortcut.registerShortcut("subwindow:validator", tr("Toggle: {0}", tr("Validation errors")),
-        KeyEvent.VK_V, Shortcut.GROUP_LAYER, Shortcut.SHIFT_DEFAULT), 150);
+                Shortcut.registerShortcut("subwindow:validator", tr("Toggle: {0}", tr("Validation errors")),
+                        KeyEvent.VK_V, Shortcut.GROUP_LAYER, Shortcut.SHIFT_DEFAULT), 150);
 
         this.plugin = plugin;
@@ -123,5 +123,19 @@
         }
         add(buttonPanel, BorderLayout.SOUTH);
-        DataSet.selListeners.add(this);
+
+    }
+
+    @Override
+    public void showNotify() {
+        DataSet.addSelectionListener(this);
+        DataSet ds = Main.main.getCurrentDataSet();
+        if (ds != null) {
+            updateSelection(ds.getSelected());
+        }
+    }
+
+    @Override
+    public void hideNotify() {
+        DataSet.removeSelectionListener(this);
     }
 
@@ -447,5 +461,5 @@
     }
 
-    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+    public void updateSelection(Collection<? extends OsmPrimitive> newSelection) {
         if (!Main.pref.getBoolean(PreferenceEditor.PREF_FILTER_BY_SELECTION, false))
             return;
@@ -456,4 +470,8 @@
     }
 
+    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+        updateSelection(newSelection);
+    }
+
     /**
      * Task for fixing a collection of {@see TestError}s. Can be run asynchronously.
@@ -482,5 +500,5 @@
         @Override
         protected void realRun() throws SAXException, IOException,
-                OsmTransferException {
+        OsmTransferException {
             ProgressMonitor monitor = getProgressMonitor();
             try {
