Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 31991)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 32007)
@@ -10,6 +10,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadPoolExecutor;
 
 import org.openstreetmap.gui.jmapviewer.interfaces.TileJob;
@@ -23,5 +23,5 @@
  */
 public class OsmTileLoader implements TileLoader {
-    private static final Executor jobDispatcher = Executors.newSingleThreadExecutor();
+    private static final ThreadPoolExecutor jobDispatcher = (ThreadPoolExecutor) Executors.newFixedThreadPool(3);
 
     private final class OsmTileJob implements TileJob {
@@ -184,5 +184,13 @@
     @Override
     public void cancelOutstandingTasks() {
-        // intentionally left empty - OsmTileLoader doesn't maintain queue
+        jobDispatcher.getQueue().clear();
+    }
+
+    /**
+     * Sets the maximum number of concurrent connections the tile loader will do
+     * @param num number of conncurent connections
+     */
+    public static void setConcurrentConnections(int num) {
+        jobDispatcher.setMaximumPoolSize(num);
     }
 }
