diff --git a/src/org/openstreetmap/josm/actions/UploadAction.java b/src/org/openstreetmap/josm/actions/UploadAction.java
index 9d085ae856..909a5837f0 100644
--- a/src/org/openstreetmap/josm/actions/UploadAction.java
+++ b/src/org/openstreetmap/josm/actions/UploadAction.java
@@ -242,6 +242,10 @@ public class UploadAction extends AbstractUploadAction {
         final UploadDialog dialog = UploadDialog.getUploadDialog();
         dialog.setUploadedPrimitives(apiData);
         dialog.initLifeCycle(layer.getDataSet());
+        Map<String, String> originalChangesetTags = dialog.getChangeset().getKeys();
+        for (UploadHook hook : UPLOAD_HOOKS) {
+            hook.modifyChangesetTags(originalChangesetTags);
+        }
         dialog.setVisible(true);
         dialog.rememberUserInput();
         if (dialog.isCanceled()) {
@@ -259,9 +263,6 @@ public class UploadAction extends AbstractUploadAction {
         // Any hooks want to change the changeset tags?
         Changeset cs = dialog.getChangeset();
         Map<String, String> changesetTags = cs.getKeys();
-        for (UploadHook hook : UPLOAD_HOOKS) {
-            hook.modifyChangesetTags(changesetTags);
-        }
         for (UploadHook hook : LATE_UPLOAD_HOOKS) {
             hook.modifyChangesetTags(changesetTags);
         }
