Index: /trunk/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java	(revision 14671)
+++ /trunk/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java	(revision 14672)
@@ -27,4 +27,5 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.ValidatorLayer;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.HtmlPanel;
 import org.openstreetmap.josm.tools.GBC;
@@ -149,6 +150,8 @@
             .setButtonIcons("ok", "cancel")
             .setContent(p);
-
-        if (ed.showDialog().getValue() != 1) {
+        int rc = ed.showDialog().getValue();
+        GuiHelper.destroyComponents(ed, false);
+        ed.dispose();
+        if (rc != 1) {
             OsmValidator.initializeTests();
             OsmValidator.initializeErrorLayer();
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 14671)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 14672)
@@ -25,5 +25,4 @@
 import javax.swing.tree.TreeSelectionModel;
 
-import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent;
@@ -42,5 +41,4 @@
 import org.openstreetmap.josm.data.validation.TestError;
 import org.openstreetmap.josm.data.validation.util.MultipleNameVisitor;
-import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.Destroyable;
@@ -410,8 +408,5 @@
     public void destroy() {
         DatasetEventManager.getInstance().removeDatasetListener(this);
-        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
-        if (ds != null) {
-            ds.removeDataSetListener(this);
-        }
+        ToolTipManager.sharedInstance().unregisterComponent(this);
         clearErrors();
     }
