Index: trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 5414)
+++ trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 5415)
@@ -296,7 +296,4 @@
     @Override
     public void layerRemoved(Layer oldLayer) {
-        if (oldLayer instanceof OsmDataLayer && Main.map.mapView.getActiveLayer() == oldLayer) {
-            Main.map.validatorDialog.tree.setErrorList(new ArrayList<TestError>());
-        }
         if (oldLayer == errorLayer) {
             errorLayer = null;
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 5414)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 5415)
@@ -85,4 +85,6 @@
     private DefaultMutableTreeNode lastSelectedNode = null;
 
+    private OsmDataLayer linkedLayer;
+
     /**
      * Constructor
@@ -367,5 +369,8 @@
             }
         }
-        Main.main.getCurrentDataSet().setSelected(sel);
+        DataSet ds = Main.main.getCurrentDataSet();
+        if (ds != null) {
+            ds.setSelected(sel);
+        }
     }
 
@@ -427,5 +432,6 @@
     public void activeLayerChange(Layer oldLayer, Layer newLayer) {
         if (newLayer instanceof OsmDataLayer) {
-            tree.setErrorList(((OsmDataLayer) newLayer).validationErrors);
+            linkedLayer = (OsmDataLayer)newLayer;
+            tree.setErrorList(linkedLayer.validationErrors);
         }
     }
@@ -435,5 +441,9 @@
 
     @Override
-    public void layerRemoved(Layer oldLayer) {}
+    public void layerRemoved(Layer oldLayer) {
+        if (oldLayer == linkedLayer) {
+            tree.setErrorList(new ArrayList<TestError>());
+        }
+    }
 
     /**
