Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillaryDownloader.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillaryDownloader.java	(revision 32975)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillaryDownloader.java	(revision 32976)
@@ -81,5 +81,5 @@
 
   /** All the Threads that have been run. Used to interrupt them properly. */
-  private static List<Thread> threads = new ArrayList<>();
+  //private static List<Thread> threads = new ArrayList<>();
 
   /** Max area to be downloaded */
@@ -130,6 +130,6 @@
   }
 
-  private static void run(Thread t) {
-    threads.add(t);
+  private static void run(Runnable t) {
+    //threads.add(t);
     executor.execute(t);
   }
@@ -245,10 +245,10 @@
    */
   public static void stopAll() {
-    for (Thread t : threads) {
+    /*for (Thread t : threads) {
       if (t.isAlive())
         Main.info(t+" is still alive!");
       t.interrupt();
     }
-    threads.clear();
+    threads.clear();*/
     executor.shutdownNow();
     try {
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySquareDownloadManagerThread.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySquareDownloadManagerThread.java	(revision 32975)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySquareDownloadManagerThread.java	(revision 32976)
@@ -26,14 +26,11 @@
  * @see MapillaryTrafficSignDownloadThread
  */
-public class MapillarySquareDownloadManagerThread extends Thread {
+public class MapillarySquareDownloadManagerThread implements Runnable {
 
   private final Bounds bounds;
 
-  private final ThreadPoolExecutor downloadExecutor = new ThreadPoolExecutor(3, 5,
-      25, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(5));
-  private final ThreadPoolExecutor completeExecutor = new ThreadPoolExecutor(3, 5,
-      25, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(5));
-  private final ThreadPoolExecutor signsExecutor = new ThreadPoolExecutor(3, 5, 25,
-      TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(5));
+  private ThreadPoolExecutor downloadExecutor;
+  private ThreadPoolExecutor completeExecutor;
+  private ThreadPoolExecutor signsExecutor;
 
   /**
@@ -49,4 +46,11 @@
   @Override
   public void run() {
+    downloadExecutor = new ThreadPoolExecutor(3, 5,
+      25, TimeUnit.SECONDS, new ArrayBlockingQueue<>(5));
+    completeExecutor = new ThreadPoolExecutor(3, 5,
+      25, TimeUnit.SECONDS, new ArrayBlockingQueue<>(5));
+    signsExecutor = new ThreadPoolExecutor(3, 5, 25,
+      TimeUnit.SECONDS, new ArrayBlockingQueue<>(5));
+
     try {
       PluginState.startDownload();
@@ -77,5 +81,5 @@
       this.downloadExecutor.execute(new MapillarySequenceDownloadThread(this.downloadExecutor, bounds, page));
       while (this.downloadExecutor.getQueue().remainingCapacity() == 0) {
-        Thread.sleep(500);
+        Thread.sleep(100);
       }
       page++;
@@ -120,18 +124,3 @@
     this.signsExecutor.awaitTermination(15, TimeUnit.SECONDS);
   }
-
-  @Override
-  public void interrupt() {
-    super.interrupt();
-    this.downloadExecutor.shutdownNow();
-    this.completeExecutor.shutdownNow();
-    this.signsExecutor.shutdownNow();
-    try {
-      this.downloadExecutor.awaitTermination(15, TimeUnit.SECONDS);
-      this.completeExecutor.awaitTermination(15, TimeUnit.SECONDS);
-      this.signsExecutor.awaitTermination(15, TimeUnit.SECONDS);
-    } catch (InterruptedException e) {
-      Main.error(e);
-    }
-  }
 }
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/utils/ImageUtil.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/utils/ImageUtil.java	(revision 32975)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/utils/ImageUtil.java	(revision 32976)
@@ -46,5 +46,7 @@
       throw new IOException(f.getAbsolutePath() + " not found or not readable!");
     } else if (f.isDirectory()) {
-      for (File child : f.listFiles()) {
+      File[] files = f.listFiles();
+      assert files != null;
+      for (File child : files) {
         try {
           images.addAll(readImagesFrom(child, defaultLL));
