Index: /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 18456)
+++ /trunk/src/org/openstreetmap/josm/gui/io/BasicUploadSettingsPanel.java	(revision 18457)
@@ -233,5 +233,5 @@
      * @return The source from the layer info.
      */
-    private String getSourceFromLayer() {
+    String getSourceFromLayer() {
         String source = MainApplication.getMap().mapView.getLayerInformationForSourceTag();
         return Utils.shortenString(source, Changeset.MAX_CHANGESET_TAG_LENGTH);
Index: /trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 18456)
+++ /trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 18457)
@@ -239,4 +239,8 @@
         model.putAll(map);          // init with tags from history
         model.putAll(this.dataSet); // overwrite with tags from the dataset
+        if (Config.getPref().getBoolean("upload.source.obtainautomatically", false)
+        && this.dataSet.getChangeSetTags().containsKey(UploadDialogModel.SOURCE)) {
+            model.put(UploadDialogModel.SOURCE, pnlBasicUploadSettings.getSourceFromLayer());
+        }
 
         tpConfigPanels.setSelectedIndex(0);
Index: /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 18456)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 18457)
@@ -1279,4 +1279,9 @@
 
     @Override
+    public String getChangesetSourceTag() {
+        return this.data.getChangeSetTags().getOrDefault("source", null);
+    }
+
+    @Override
     public AbstractUploadDialog getUploadDialog() {
         UploadDialog dialog = UploadDialog.getUploadDialog();
