Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 8619)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 8620)
@@ -20,4 +20,5 @@
 import java.io.File;
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -38,4 +39,5 @@
 import javax.swing.Action;
 import javax.swing.BorderFactory;
+import javax.swing.DefaultButtonModel;
 import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JLabel;
@@ -471,4 +473,21 @@
     }
 
+    private class BooleanButtonModel extends DefaultButtonModel {
+        private Field field;
+
+        public BooleanButtonModel(Field field) {
+            this.field = field;
+        }
+
+        @Override
+        public boolean isSelected() {
+            try {
+                return field.getBoolean(AbstractTileSourceLayer.this);
+            } catch (IllegalArgumentException | IllegalAccessException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+    }
     /**
      * Creates popup menu items and binds to mouse actions
@@ -480,12 +499,24 @@
         initTileSource(this.tileSource);
 
+        ;
         // keep them final here, so we avoid namespace clutter in the class
         final JPopupMenu tileOptionMenu = new JPopupMenu();
         final TileHolder clickedTileHolder = new TileHolder();
+        Field autoZoomField;
+        Field autoLoadField;
+        Field showErrorsField;
+        try {
+            autoZoomField = AbstractTileSourceLayer.class.getField("autoZoom");
+            autoLoadField = AbstractTileSourceLayer.class.getDeclaredField("autoLoad");
+            showErrorsField = AbstractTileSourceLayer.class.getDeclaredField("showErrors");
+        } catch (NoSuchFieldException | SecurityException e) {
+            // shoud not happen
+            throw new RuntimeException(e);
+        }
 
         autoZoom = PROP_DEFAULT_AUTOZOOM.get();
         JCheckBoxMenuItem autoZoomPopup = new JCheckBoxMenuItem();
+        autoZoomPopup.setModel(new BooleanButtonModel(autoZoomField));
         autoZoomPopup.setAction(new AutoZoomAction());
-        autoZoomPopup.setSelected(autoZoom);
         tileOptionMenu.add(autoZoomPopup);
 
@@ -493,5 +524,5 @@
         JCheckBoxMenuItem autoLoadPopup = new JCheckBoxMenuItem();
         autoLoadPopup.setAction(new AutoLoadTilesAction());
-        autoLoadPopup.setSelected(autoLoad);
+        autoLoadPopup.setModel(new BooleanButtonModel(autoLoadField));
         tileOptionMenu.add(autoLoadPopup);
 
@@ -504,5 +535,5 @@
             }
         });
-        showErrorsPopup.setSelected(showErrors);
+        showErrorsPopup.setModel(new BooleanButtonModel(showErrorsField));
         tileOptionMenu.add(showErrorsPopup);
 
Index: trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 8619)
+++ trunk/src/org/openstreetmap/josm/io/session/SessionWriter.java	(revision 8620)
@@ -38,4 +38,5 @@
 import org.openstreetmap.josm.gui.layer.TMSLayer;
 import org.openstreetmap.josm.gui.layer.WMSLayer;
+import org.openstreetmap.josm.gui.layer.WMTSLayer;
 import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
@@ -54,4 +55,5 @@
         registerSessionLayerExporter(TMSLayer.class , ImagerySessionExporter.class);
         registerSessionLayerExporter(WMSLayer.class , ImagerySessionExporter.class);
+        registerSessionLayerExporter(WMTSLayer.class , ImagerySessionExporter.class);
         registerSessionLayerExporter(GpxLayer.class , GpxTracksSessionExporter.class);
         registerSessionLayerExporter(GeoImageLayer.class , GeoImageSessionExporter.class);
