Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 35017)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 35018)
@@ -14,4 +14,5 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadPoolExecutor;
+import java.util.logging.Level;
 
 import org.openstreetmap.gui.jmapviewer.interfaces.TileJob;
@@ -25,5 +26,16 @@
  */
 public class OsmTileLoader implements TileLoader {
-    private static final ThreadPoolExecutor jobDispatcher = (ThreadPoolExecutor) Executors.newFixedThreadPool(8);
+    /** Setting key for number of threads */
+    public static final String THREADS_SETTING = "jmapviewer.osm-tile-loader.threads";
+    private static final int DEFAULT_THREADS_NUMBER = 4;
+    private static int nThreads = DEFAULT_THREADS_NUMBER;
+    static {
+        try {
+            nThreads = FeatureAdapter.getIntSetting(THREADS_SETTING, DEFAULT_THREADS_NUMBER);
+        } catch (Exception e) {
+            FeatureAdapter.getLogger(OsmTileLoader.class.getName()).log(Level.SEVERE, e.getMessage(), e);
+        }
+    }
+    private static final ThreadPoolExecutor jobDispatcher = (ThreadPoolExecutor) Executors.newFixedThreadPool(nThreads);
 
     private final class OsmTileJob implements TileJob {
