Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 18186)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 18187)
@@ -889,5 +889,5 @@
         if (tile == null) {
             if (coordinateConverter.requiresReprojection()) {
-                tile = new ReprojectionTile(tileSource, x, y, zoom);
+                tile = new ReprojectionTile(createTile(tileSource, x, y, zoom));
             } else {
                 tile = createTile(tileSource, x, y, zoom);
Index: trunk/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java	(revision 18186)
+++ trunk/src/org/openstreetmap/josm/gui/layer/imagery/ReprojectionTile.java	(revision 18187)
@@ -5,4 +5,6 @@
 import java.awt.geom.Point2D;
 import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.InputStream;
 
 import org.openstreetmap.gui.jmapviewer.Tile;
@@ -11,4 +13,5 @@
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.imagery.CoordinateConversion;
+import org.openstreetmap.josm.data.imagery.vectortile.VectorTile;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.ProjectionRegistry;
@@ -26,4 +29,5 @@
 public class ReprojectionTile extends Tile {
 
+    private final Tile tile;
     protected TileAnchor anchor;
     private double nativeScale;
@@ -32,5 +36,5 @@
     /**
      * Constructs a new {@code ReprojectionTile}.
-     * @param source sourec tile
+     * @param source source tile
      * @param xtile X coordinate
      * @param ytile Y coordinate
@@ -39,4 +43,14 @@
     public ReprojectionTile(TileSource source, int xtile, int ytile, int zoom) {
         super(source, xtile, ytile, zoom);
+        this.tile = null;
+    }
+
+    /**
+     * Create a reprojection tile for a specific tile
+     * @param tile The tile to use
+     */
+    public ReprojectionTile(Tile tile) {
+        super(tile.getTileSource(), tile.getXtile(), tile.getYtile(), tile.getZoom());
+        this.tile = tile;
     }
 
@@ -73,4 +87,13 @@
             return false;
         return !maxZoomReached || currentScale >= nativeScale;
+    }
+
+    @Override
+    public void loadImage(InputStream inputStream) throws IOException {
+        if (this.tile instanceof VectorTile) {
+            this.tile.loadImage(inputStream);
+        } else {
+            super.loadImage(inputStream);
+        }
     }
 
