Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 14588)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 14589)
@@ -470,4 +470,7 @@
         Config.getPref().removePreferenceChangeListener(this);
         GuiHelper.destroyComponents(this, false);
+        titleBar.destroy();
+        titleBar = null;
+        this.buttonActions.clear();
     }
 
@@ -501,5 +504,5 @@
      * The title bar displayed in docked mode
      */
-    protected class TitleBar extends JPanel {
+    protected class TitleBar extends JPanel implements Destroyable {
         /** the label which shows whether the toggle dialog is expanded or collapsed */
         private final JLabel lblMinimized;
@@ -511,4 +514,6 @@
         /** the contextual menu **/
         private DialogPopupMenu popupMenu;
+
+        private MouseEventHandler mouseEventHandler;
 
         @SuppressWarnings("unchecked")
@@ -633,5 +638,6 @@
         public final void registerMouseListener() {
             popupMenu = new DialogPopupMenu();
-            addMouseListener(new MouseEventHandler());
+            mouseEventHandler = new MouseEventHandler();
+            addMouseListener(mouseEventHandler);
         }
 
@@ -656,4 +662,11 @@
                 }
             }
+        }
+
+        @Override
+        public void destroy() {
+            removeMouseListener(mouseEventHandler);
+            this.mouseEventHandler = null;
+            this.popupMenu = null;
         }
     }
@@ -754,5 +767,7 @@
      */
     public void setTitle(String title) {
-        titleBar.setTitle(title);
+        if (titleBar != null) {
+            titleBar.setTitle(title);
+        }
         if (detachedDialog != null) {
             detachedDialog.setTitle(title);
