Index: .settings/org.eclipse.jdt.core.prefs
===================================================================
--- .settings/org.eclipse.jdt.core.prefs	(revision 89)
+++ .settings/org.eclipse.jdt.core.prefs	(working copy)
@@ -7,9 +7,9 @@
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -112,4 +112,4 @@
 org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
Index: build.xml
===================================================================
--- build.xml	(revision 89)
+++ build.xml	(working copy)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<project name="continuosDownload" default="dist" basedir=".">
+<project name="continuosDownload-test" default="dist" basedir=".">
 
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Commit message"/>
@@ -14,10 +14,11 @@
     <property name="plugin.description" value="Downloads new data when you pan/zoom"/>
     <property name="plugin.icon" value="images/continuous-download.png"/>
     <property name="plugin.link" value="https://github.com/JOSM/JOSM-continuos-download"/>
-    
+    <property name="plugin.canloadatruntime" value="true"/>
+
 	<property name="josm" location="../../core/dist/josm-custom.jar"/>
 	<property name="plugin.dist.dir" value="../../dist"/>
-	
+
     <target name="additional-manifest">
         <manifest file="MANIFEST" mode="update">
             <attribute name="7588_Plugin-Url" value="v1.1.01;https://github.com/Gnonthgol/JOSM-continuos-download/releases/download/v1.1.01/continuosDownload.jar" />
@@ -33,5 +34,5 @@
 
     <!-- ** include targets that all plugins have in common ** -->
     <import file="../build-common.xml"/>
-  
+
 </project>
Index: src/org/openstreetmap/josm/plugins/continuosDownload/DownloadPlugin.java
===================================================================
--- src/org/openstreetmap/josm/plugins/continuosDownload/DownloadPlugin.java	(revision 89)
+++ src/org/openstreetmap/josm/plugins/continuosDownload/DownloadPlugin.java	(working copy)
@@ -30,10 +30,11 @@
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
 import org.openstreetmap.josm.spi.preferences.Config;
+import org.openstreetmap.josm.tools.Destroyable;
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Shortcut;
 
-public class DownloadPlugin extends Plugin implements ZoomChangeListener {
+public class DownloadPlugin extends Plugin implements ZoomChangeListener, Destroyable {
 
     /**
      * The worker that runs all our downloads, it have more threads than
@@ -52,6 +53,9 @@
     private Bounds lastBbox;
     private boolean active;
 
+    private DownloadPreference preference;
+    private JCheckBoxMenuItem menuItem;
+
     /**
      * Constructs a new {@code DownloadPlugin}.
      * @param info plugin info
@@ -64,7 +68,7 @@
         NavigatableComponent.addZoomChangeListener(this);
 
         ToggleAction toggle = new ToggleAction();
-        JCheckBoxMenuItem menuItem = MainMenu.addWithCheckbox(MainApplication.getMenu().fileMenu, toggle,
+        menuItem = MainMenu.addWithCheckbox(MainApplication.getMenu().fileMenu, toggle,
                 MainMenu.WINDOW_MENU_GROUP.ALWAYS);
         menuItem.setState(active);
         toggle.addButtonModel(menuItem.getModel());
@@ -72,7 +76,9 @@
 
     @Override
     public PreferenceSetting getPreferenceSetting() {
-        return new DownloadPreference();
+        if (preference == null)
+            preference = new DownloadPreference();
+        return preference;
     }
 
     @Override
@@ -172,4 +178,13 @@
     public static List<String> getStrategies() {
         return new ArrayList<>(strats.keySet());
     }
+
+    @Override
+    public void destroy() {
+        NavigatableComponent.removeZoomChangeListener(this);
+        worker.shutdown();
+        MainApplication.getMenu().fileMenu.remove(menuItem);
+        if (preference != null)
+            preference.destroy();
+    }
 }
Index: src/org/openstreetmap/josm/plugins/continuosDownload/DownloadPreference.java
===================================================================
--- src/org/openstreetmap/josm/plugins/continuosDownload/DownloadPreference.java	(revision 89)
+++ src/org/openstreetmap/josm/plugins/continuosDownload/DownloadPreference.java	(working copy)
@@ -5,6 +5,8 @@
 
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
+import java.util.HashMap;
+import java.util.Map;
 
 import javax.swing.Box;
 import javax.swing.JCheckBox;
@@ -16,12 +18,13 @@
 import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
 import org.openstreetmap.josm.spi.preferences.Config;
+import org.openstreetmap.josm.tools.Destroyable;
 import org.openstreetmap.josm.tools.GBC;
 
 /**
  * Plugin preferences.
  */
-public class DownloadPreference extends DefaultTabPreferenceSetting {
+public class DownloadPreference extends DefaultTabPreferenceSetting implements Destroyable {
 
     private final JCheckBox activeDefault = new JCheckBox(tr("Activate continuous downloads at startup."));
     private final JTextField maxThreads = new JTextField(4);
@@ -32,6 +35,7 @@
     private final JComboBox<String> strategy = new JComboBox<>();
     private final JCheckBox quietDownload = new JCheckBox(tr("Supress the default modal progress monitor when downloading."));
 
+    private final Map<PreferenceTabbedPane, JPanel> guiPanes = new HashMap<>();
     /**
      * Constructs a new {@code DownloadPreference}.
      */
@@ -101,6 +105,7 @@
 
         panel.add(Box.createVerticalGlue(), GBC.eol().fill(GridBagConstraints.VERTICAL));
         createPreferenceTabWithScrollPane(gui, panel);
+        guiPanes.put(gui, panel);
     }
 
     @Override
@@ -117,4 +122,9 @@
         Config.getPref().putBoolean("plugin.continuos_download.quiet_download", quietDownload.isSelected());
         return r;
     }
+
+    @Override
+    public void destroy() {
+        guiPanes.forEach((gui, panel) -> gui.remove(panel));
+    }
 }
