Index: /trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java	(revision 17495)
+++ /trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoader.java	(revision 17496)
@@ -158,3 +158,12 @@
         return downloadExecutor;
     }
+
+    /**
+     * Shutdown the job dispatcher provided that it's not the default one
+     */
+    public void shutdown() {
+        if (!downloadExecutor.equals(DEFAULT_DOWNLOAD_JOB_DISPATCHER)) {
+            downloadExecutor.shutdown();
+        }
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 17495)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 17496)
@@ -1884,5 +1884,5 @@
                 TMSCachedTileLoader cachedTileLoader = (TMSCachedTileLoader) tileLoader;
                 cachedTileLoader.cancelOutstandingTasks();
-                cachedTileLoader.getDownloadExecutor().shutdown();
+                cachedTileLoader.shutdown();
             }
         }
@@ -1904,5 +1904,5 @@
                 TMSCachedTileLoader cachedTileLoader = (TMSCachedTileLoader) tileLoader;
                 cachedTileLoader.cancelOutstandingTasks();
-                cachedTileLoader.getDownloadExecutor().shutdown();
+                cachedTileLoader.shutdown();
             }
         }
@@ -1964,5 +1964,5 @@
         if (tileLoader instanceof TMSCachedTileLoader) {
             TMSCachedTileLoader cachedTileLoader = (TMSCachedTileLoader) tileLoader;
-            cachedTileLoader.getDownloadExecutor().shutdown();
+            cachedTileLoader.shutdown();
         }
     }
