Index: ValidatorTreePanel.java
===================================================================
--- ValidatorTreePanel.java	(revision 11287)
+++ ValidatorTreePanel.java	(working copy)
@@ -104,6 +104,12 @@
                 removeKeyListener(keyListener);
             }
         }
+        addDataSetListener();
+    }
+
+    private void addDataSetListener() {
+        if (getErrors().isEmpty())
+            return;
         DataSet ds = Main.getLayerManager().getEditDataSet();
         if (ds != null) {
             ds.addDataSetListener(this);
@@ -302,6 +308,7 @@
      */
     public final void setErrorList(List<TestError> errors) {
         this.errors = errors;
+        addDataSetListener();
         if (isVisible()) {
             buildTree();
         }
@@ -320,6 +327,7 @@
                 errors.add(error);
             }
         }
+        addDataSetListener();
         if (isVisible()) {
             buildTree();
         }
@@ -442,7 +450,11 @@
                 err.getPrimitives().removeAll(event.getPrimitives());
             } catch (UnsupportedOperationException e) {
                 if (event.getPrimitives().containsAll(err.getPrimitives())) {
-                    err.getPrimitives().clear();
+                    try {
+                        err.getPrimitives().clear();
+                    } catch (UnsupportedOperationException e2) {
+                        Main.warn(e, "Unable to remove primitives from "+err+'.');
+                    }
                 } else {
                     Main.warn(e, "Unable to remove primitives from "+err+'.');
                 }
