Index: trunk/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java	(revision 2824)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java	(revision 2825)
@@ -316,4 +316,8 @@
                 if (lastException instanceof ChangesetClosedException) {
                     ChangesetClosedException e = (ChangesetClosedException)lastException;
+                    if (e.getSource().equals(ChangesetClosedException.Source.UPDATE_CHANGESET)) {
+                        handleFailedUpload(lastException);
+                        return;
+                    }
                     if (strategy.getPolicy() == null)
                         /* do nothing if unknown policy */
Index: trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 2824)
+++ trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 2825)
@@ -22,4 +22,5 @@
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.logging.Logger;
 
 import javax.xml.parsers.ParserConfigurationException;
@@ -47,4 +48,5 @@
  */
 public class OsmApi extends OsmConnection {
+    static private final Logger logger = Logger.getLogger(OsmApi.class.getName());
     /** max number of retries to send a request in case of HTTP 500 errors or timeouts */
     static public final int DEFAULT_MAX_NUM_RETRIES = 5;
@@ -579,10 +581,4 @@
                 case HttpURLConnection.HTTP_GONE:
                     throw new OsmApiPrimitiveGoneException(errorHeader, errorBody);
-                    //                case HttpURLConnection.HTTP_UNAUTHORIZED:
-                    //                    throw new OsmApiException(retCode, errorHeader, errorBody);
-                    //                case HttpURLConnection.HTTP_PROXY_AUTH:
-                    //                    throw new OsmApiException(retCode, errorHeader, errorBody);
-                    //                case HttpURLConnection.HTTP_FORBIDDEN:
-                    //                    throw new OsmApiException(retCode, errorHeader, errorBody);
                 case HttpURLConnection.HTTP_CONFLICT:
                     if (ChangesetClosedException.errorHeaderMatchesPattern(errorHeader))
Index: trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 2824)
+++ trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java	(revision 2825)
@@ -121,6 +121,4 @@
         } catch(OsmTransferException e) {
             throw e;
-        } catch(Exception e) {
-            throw new OsmTransferException(e);
         } finally {
             progressMonitor.finishTask();
@@ -161,6 +159,4 @@
         } catch(OsmTransferException e) {
             throw e;
-        } catch(Exception e) {
-            throw new OsmTransferException(e);
         } finally {
             progressMonitor.finishTask();
@@ -207,6 +203,4 @@
         } catch(OsmTransferException e) {
             throw e;
-        } catch(Exception e) {
-            throw new OsmTransferException(e);
         } finally {
             monitor.finishTask();
