Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 31541)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 31546)
@@ -10,8 +10,11 @@
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
 
 import org.openstreetmap.gui.jmapviewer.interfaces.TileJob;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -21,4 +24,8 @@
  */
 public class OsmTileLoader implements TileLoader {
+    private final static Executor jobDispatcher =
+            Executors.newSingleThreadExecutor(
+                    Utils.newThreadFactory("OsmTileLoader-%d", Thread.NORM_PRIORITY)
+                    );
 
     private final class OsmTileJob implements TileJob {
@@ -89,5 +96,5 @@
         public void submit(boolean force) {
             this.force = force;
-            run();
+            jobDispatcher.execute(this);
         }
     }
