Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 8860)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 8861)
@@ -140,10 +140,4 @@
     public static final IntegerProperty ZOOM_OFFSET = new IntegerProperty(PREFERENCE_PREFIX + ".zoom_offset", 0);
 
-    /**
-     * use fairly small memory cache, as cached objects are quite big, as they contain BufferedImages
-     */
-    public static final IntegerProperty MEMORY_CACHE_SIZE = new IntegerProperty(PREFERENCE_PREFIX + ".cache.max_objects_ram",
-            (int) Math.max(200,  200 * Math.pow(4, ZOOM_OFFSET.get())));
-
     /*
      *  use MemoryTileCache instead of tileLoader JCS cache, as tileLoader caches only content (byte[] of image)
@@ -880,5 +874,5 @@
      */
     private Tile getTile(int x, int y, int zoom) {
-        if (x < 0 || x >= tileSource.getTileXMax(zoom) || y < 0 || y >= tileSource.getTileYMax(zoom))
+        if (x < 0 || x > tileSource.getTileXMax(zoom) || y < 0 || y > tileSource.getTileYMax(zoom))
             return null;
         return tileCache.getTile(tileSource, x, y, zoom);
Index: trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CommonSettingsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CommonSettingsPanel.java	(revision 8860)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CommonSettingsPanel.java	(revision 8861)
@@ -39,5 +39,4 @@
     private final JosmTextField tilecacheDir = new JosmTextField();
     private final JSpinner maxElementsOnDisk;
-    private final JSpinner maxElementsInRam;
     private final JSlider tilesZoom = new JSlider(-2, 2, 0);
 
@@ -49,6 +48,4 @@
         super(new GridBagLayout());
 
-        this.maxElementsInRam = new JSpinner(new SpinnerNumberModel(
-                AbstractCachedTileSourceLayer.MEMORY_CACHE_SIZE.get().intValue(), 0, Integer.MAX_VALUE, 1));
         this.maxElementsOnDisk = new JSpinner(new SpinnerNumberModel(
                 AbstractCachedTileSourceLayer.MAX_DISK_CACHE_SIZE.get().intValue(), 0, Integer.MAX_VALUE, 1));
@@ -98,8 +95,4 @@
         add(this.maxElementsOnDisk, GBC.eol());
 
-        add(new JLabel(tr("Maximum number of objects in memory cache: ")), GBC.std());
-        add(GBC.glue(5, 0), GBC.std());
-        add(this.maxElementsInRam, GBC.eol());
-
         this.tilesZoom.setPaintLabels(true);
         this.tilesZoom.setMajorTickSpacing(2);
@@ -122,5 +115,4 @@
         this.tilecacheDir.setText(CachedTileLoaderFactory.PROP_TILECACHE_DIR.get());
         this.maxElementsOnDisk.setValue(AbstractCachedTileSourceLayer.MAX_DISK_CACHE_SIZE.get());
-        this.maxElementsInRam.setValue(AbstractCachedTileSourceLayer.MEMORY_CACHE_SIZE.get());
         this.tilesZoom.setValue(AbstractTileSourceLayer.ZOOM_OFFSET.get());
     }
@@ -147,9 +139,4 @@
         }
 
-        if (!AbstractCachedTileSourceLayer.MEMORY_CACHE_SIZE.get().equals(this.maxElementsInRam.getValue())) {
-            AbstractCachedTileSourceLayer.MEMORY_CACHE_SIZE.put((Integer) this.maxElementsInRam.getValue());
-            restartRequired = true;
-        }
-
         if (!AbstractTileSourceLayer.ZOOM_OFFSET.get().equals(this.tilesZoom.getValue())) {
             // TODO: make warning about too small MEMORY_CACHE_SIZE?
