Index: src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapView.java	(revision 15367)
+++ src/org/openstreetmap/josm/gui/MapView.java	(working copy)
@@ -50,8 +50,6 @@
 import org.openstreetmap.josm.gui.MapViewState.MapViewRectangle;
 import org.openstreetmap.josm.gui.autofilter.AutoFilterManager;
 import org.openstreetmap.josm.gui.datatransfer.OsmTransferHandler;
-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.LayerManager;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
@@ -66,7 +64,6 @@
 import org.openstreetmap.josm.gui.layer.MapViewPaintable.PaintableInvalidationEvent;
 import org.openstreetmap.josm.gui.layer.MapViewPaintable.PaintableInvalidationListener;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
-import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
 import org.openstreetmap.josm.gui.layer.markerlayer.PlayHeadMarker;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.MapPaintSylesUpdateListener;
@@ -819,20 +816,11 @@
      */
     public String getLayerInformationForSourceTag() {
         final Set<String> layerInfo = new TreeSet<>();
-        if (!layerManager.getLayersOfType(GpxLayer.class).isEmpty()) {
-            // no i18n for international values
-            layerInfo.add("survey");
-        }
-        for (final GeoImageLayer i : layerManager.getLayersOfType(GeoImageLayer.class)) {
-            if (i.isVisible()) {
-                layerInfo.add(i.getName());
+        for (Layer layer : layerManager.getLayers()) {
+            if (layer.getChangesetSourceTag() != null && !layer.getChangesetSourceTag().trim().isEmpty()) {
+                layerInfo.add(layer.getChangesetSourceTag());
             }
         }
-        for (final ImageryLayer i : layerManager.getLayersOfType(ImageryLayer.class)) {
-            if (i.isVisible()) {
-                layerInfo.add(i.getInfo().getSourceName());
-            }
-        }
         return Utils.join("; ", layerInfo);
     }
 
Index: src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 15367)
+++ src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(working copy)
@@ -473,4 +473,9 @@
     public void expertChanged(boolean isExpert) {
         this.isExpertMode = isExpert;
     }
+
+    @Override
+    public String getChangesetSourceTag() {
+        return "survey";
+    }
 }
Index: src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/ImageryLayer.java	(revision 15367)
+++ src/org/openstreetmap/josm/gui/layer/ImageryLayer.java	(working copy)
@@ -354,4 +354,9 @@
     public String toString() {
         return getClass().getSimpleName() + " [info=" + info + ']';
     }
+
+    @Override
+    public String getChangesetSourceTag() {
+        return getInfo().getSourceName();
+    }
 }
Index: src/org/openstreetmap/josm/gui/layer/Layer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 15367)
+++ src/org/openstreetmap/josm/gui/layer/Layer.java	(working copy)
@@ -674,6 +674,15 @@
         return v.getBounds();
     }
 
+    /**
+     * Get the source for the layer
+     * @return The string for the changeset source tag or {@code null}
+     * @since xxx
+     */
+    public String getChangesetSourceTag() {
+        return null;
+    }
+
     @Override
     public String toString() {
         return getClass().getSimpleName() + " [name=" + name + ", associatedFile=" + associatedFile + ']';
Index: src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 15367)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(working copy)
@@ -1010,4 +1010,9 @@
     public void imageDataUpdated(ImageData data) {
         updateBufferAndRepaint();
     }
+
+    @Override
+    public String getChangesetSourceTag() {
+        return getName();
+    }
 }
