Index: trunk/test/data/sessions/bing.jos
===================================================================
--- trunk/test/data/sessions/bing.jos	(revision 8803)
+++ trunk/test/data/sessions/bing.jos	(revision 8803)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<josm-session version="0.1">
+    <viewport>
+        <center lat="1" lon="1"/>
+        <scale meter-per-pixel="9"/>
+    </viewport>
+    <layers active="1">
+        <layer index="1" name="Bing aerial imagery" type="imagery" version="0.1" visible="true">
+            <name>Bing aerial imagery</name>
+            <id>Bing</id>
+            <type>bing</type>
+            <url>http://www.bing.com/maps/</url>
+            <max-zoom>22</max-zoom>
+            <automatic-downloading>true</automatic-downloading>
+            <automatically-change-resolution>true</automatically-change-resolution>
+            <show-errors>true</show-errors>
+            <dx>12.34</dx>
+            <dy>-56.78</dy>
+        </layer>
+    </layers>
+</josm-session>
Index: trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java	(revision 8799)
+++ trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java	(revision 8803)
@@ -2,7 +2,9 @@
 package org.openstreetmap.josm.io.session;
 
+import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -16,4 +18,5 @@
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
+import org.openstreetmap.josm.gui.layer.ImageryLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -112,3 +115,14 @@
         assertEquals(marker.getName(), "Marker layer name");
     }
+
+    @Test
+    public void testReadImage() throws IOException, IllegalDataException {
+        final List<Layer> layers = testRead("bing.jos");
+        assertSame(layers.size(), 1);
+        assertTrue(layers.get(0) instanceof ImageryLayer);
+        final ImageryLayer image = (ImageryLayer) layers.get(0);
+        assertThat(image.getName(), is("Bing aerial imagery"));
+        assertEquals(image.getDx(), 12.34, 1e-9);
+        assertEquals(image.getDy(), -56.78, 1e-9);
+    }
 }
Index: trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 8799)
+++ trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 8803)
@@ -4,4 +4,5 @@
 import java.io.File;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -15,12 +16,14 @@
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
+import org.openstreetmap.josm.gui.layer.ImageryLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.layer.TMSLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
 import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 import org.openstreetmap.josm.tools.MultiMap;
-import org.openstreetmap.josm.tools.Pair;
 
 /**
@@ -124,4 +127,10 @@
     }
 
+    private ImageryLayer createImageryLayer() {
+        ImageryLayer layer = new TMSLayer(new ImageryInfo("the name", "http://www.url.com/"));
+        layer.setOffset(12, 34);
+        return layer;
+    }
+
     /**
      * Tests to write an empty .jos file.
@@ -185,5 +194,11 @@
     public void testWriteGpxAndMarkerJoz() throws IOException {
         GpxLayer gpx = createGpxLayer();
-        testWrite(Pair.toList(new Pair<Layer, Layer>(gpx, createMarkerLayer(gpx))), true);
+        testWrite(Arrays.asList(gpx, createMarkerLayer(gpx)), true);
+    }
+
+    @Test
+    public void testWriteImageryLayer() throws IOException {
+        final Layer layer = createImageryLayer();
+        testWrite(Collections.singletonList(layer), true);
     }
 }
