Index: /trunk/src/org/openstreetmap/josm/actions/UploadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 14251)
+++ /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 14252)
@@ -31,4 +31,5 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.io.UploadStrategySpecification;
 import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -246,14 +247,18 @@
         dialog.setVisible(true);
         dialog.rememberUserInput();
-        if (dialog.isCanceled())
-            return;
+        if (dialog.isCanceled()) {
+            dialog.clean();
+            return;
+        }
 
         for (UploadHook hook : LATE_UPLOAD_HOOKS) {
-            if (!hook.checkUpload(apiData))
+            if (!hook.checkUpload(apiData)) {
+                dialog.clean();
                 return;
+            }
         }
 
         // Any hooks want to change the changeset tags?
-        Changeset cs = UploadDialog.getUploadDialog().getChangeset();
+        Changeset cs = dialog.getChangeset();
         Map<String, String> changesetTags = cs.getKeys();
         for (UploadHook hook : UPLOAD_HOOKS) {
@@ -264,10 +269,10 @@
         }
 
+        UploadStrategySpecification uploadStrategySpecification = dialog.getUploadStrategySpecification();
+        dialog.clean();
+
         if (Config.getPref().getBoolean(IS_ASYNC_UPLOAD_ENABLED, true)) {
             Optional<AsynchronousUploadPrimitivesTask> asyncUploadTask = AsynchronousUploadPrimitivesTask.createAsynchronousUploadTask(
-                    UploadDialog.getUploadDialog().getUploadStrategySpecification(),
-                    layer,
-                    apiData,
-                    cs);
+                    uploadStrategySpecification, layer, apiData, cs);
 
             if (asyncUploadTask.isPresent()) {
@@ -275,10 +280,5 @@
             }
         } else {
-            MainApplication.worker.execute(
-                    new UploadPrimitivesTask(
-                            UploadDialog.getUploadDialog().getUploadStrategySpecification(),
-                            layer,
-                            apiData,
-                            cs));
+            MainApplication.worker.execute(new UploadPrimitivesTask(uploadStrategySpecification, layer, apiData, cs));
         }
     }
