Index: /applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/MapdustPlugin.java
===================================================================
--- /applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/MapdustPlugin.java	(revision 34213)
+++ /applications/editors/josm/plugins/mapdust/src/org/openstreetmap/josm/plugins/mapdust/MapdustPlugin.java	(revision 34214)
@@ -36,4 +36,7 @@
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 
 import javax.swing.JOptionPane;
@@ -79,4 +82,8 @@
         MapdustUpdateObserver, MapdustBugObserver {
 
+    /** Executor that will run the updates. */
+    private static ThreadPoolExecutor executor = new ThreadPoolExecutor(
+      3, 5, 100, TimeUnit.SECONDS, new ArrayBlockingQueue<>(100), new ThreadPoolExecutor.DiscardPolicy());
+
     /** The graphical user interface of the plug-in */
     private MapdustGUI mapdustGUI;
@@ -532,10 +539,5 @@
      */
     private void updatePluginData() {
-        MainApplication.worker.execute(new Runnable() {
-            @Override
-            public void run() {
-                updateMapdustData();
-            }
-        });
+        executor.execute(() -> updateMapdustData());
     }
 
@@ -596,5 +598,5 @@
                     /* MapDust data was changed */
                     mapdustGUI.update(mapdustBugList, this);
-                    mapdustLayer.destroy();
+                    mapdustLayer.invalidate();
                     mapdustLayer.update(mapdustGUI, mapdustBugList);
                     needRepaint = true;
