Index: /trunk/src/org/openstreetmap/josm/actions/UploadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 1545)
+++ /trunk/src/org/openstreetmap/josm/actions/UploadAction.java	(revision 1546)
@@ -15,4 +15,5 @@
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
+import javax.swing.JTextField;
 
 import org.openstreetmap.josm.Main;
@@ -36,4 +37,11 @@
 public class UploadAction extends JosmAction {
 
+    /**
+     * Last commit message used for uploading changes.
+     * FIXME save this in preferences, or even offer list of 10 last recently used comments?
+     * FIXME ugly hack; value is filled here and retrieved in the OsmApi class; find better way
+     */
+    public static String lastCommitComment; 
+    
     /** Upload Hook */
     public interface UploadHook {
@@ -98,10 +106,26 @@
                     p.add(new JScrollPane(l), GBC.eol().fill());
                 }
+                
+                p.add(new JLabel(tr("Provide a brief comment for the changes you are uploading:")), GBC.eol().insets(0, 5, 10, 3));
+                final JTextField cmt = new JTextField(lastCommitComment);
+                p.add(cmt, GBC.eol().fill(GBC.HORIZONTAL));
 
-                return new ExtendedDialog(Main.parent, 
+                while(true) {
+                    int result = new ExtendedDialog(Main.parent, 
                         tr("Upload these changes?"), 
                         p,
                         new String[] {tr("Upload Changes"), tr("Cancel")}, 
-                        new String[] {"upload.png", "cancel.png"}).getValue() == 1;  
+                        new String[] {"upload.png", "cancel.png"}).getValue();
+                    
+                    // cancel pressed
+                    if (result != 1) return false;
+                    
+                    // don't allow empty commit message
+                    if (cmt.getText().trim().length() < 3) continue;
+                    
+                    lastCommitComment = cmt.getText().trim();
+                    break;
+                }
+                return true;
             }
         });
Index: /trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 1545)
+++ /trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 1546)
@@ -6,5 +6,4 @@
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
-import java.io.ByteArrayOutputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
@@ -20,6 +19,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Properties;
-import java.util.HashMap;
 import java.util.StringTokenizer;
 
Index: /trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 1545)
+++ /trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 1546)
@@ -7,7 +7,6 @@
 import java.util.LinkedList;
 
-import javax.swing.JOptionPane;
-
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.UploadAction;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
@@ -30,4 +29,5 @@
      */
     public Collection<OsmPrimitive> processed;
+   
 
     private OsmApi api = new OsmApi();
@@ -74,21 +74,7 @@
             "0.6".equals(api.getVersion()));
 
-        // solicit commit comment from user
-        String comment = null;
-        while (useChangesets && comment == null) {
-            comment = JOptionPane.showInputDialog(Main.parent,
-                 tr("Provide a brief comment for the changes you are uploading:"),
-                 tr("Commit comment"), JOptionPane.QUESTION_MESSAGE);
-            if (comment == null)
-                return;
-            // Don't let people just hit enter
-            if (comment.trim().length() >= 3)
-                break;
-            comment = null;
-        }
-        
         // create changeset if required
         try {
-            if (useChangesets) api.createChangeset(comment);
+            if (useChangesets) api.createChangeset(UploadAction.lastCommitComment);
         } catch (OsmTransferException ex) {
             dealWithTransferException(ex);
