Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 31143)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/OsmTileLoader.java	(revision 31145)
@@ -41,4 +41,5 @@
 
             InputStream input = null;
+            boolean force = false;
 
             public void run() {
@@ -52,4 +53,7 @@
                 try {
                     URLConnection conn = loadTileFromOsm(tile);
+                    if (force) {
+                        conn.setUseCaches(false);
+                    }
                     loadTileMetadata(tile, conn);
                     if ("no-tile".equals(tile.getValue("tile-info"))) {
@@ -89,7 +93,14 @@
             @Override
             public void submit() {
-                run();
+                submit(false);
 
             }
+
+            @Override
+            public void submit(boolean force) {
+                this.force = force;
+                run();
+            }
+
         };
     }
@@ -102,5 +113,4 @@
             prepareHttpUrlConnection((HttpURLConnection)urlConn);
         }
-        urlConn.setReadTimeout(30000); // 30 seconds read timeout
         return urlConn;
     }
Index: applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/interfaces/TileJob.java
===================================================================
--- applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/interfaces/TileJob.java	(revision 31143)
+++ applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/interfaces/TileJob.java	(revision 31145)
@@ -23,3 +23,10 @@
      */
     void submit();
+
+    /**
+     * submits download job to backend.
+     * @param true if the load should skip all the caches (local & remote)
+     */
+    void submit(boolean force);
+
 }
