Index: trunk/src/org/openstreetmap/josm/tools/Logging.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Logging.java	(revision 14068)
+++ trunk/src/org/openstreetmap/josm/tools/Logging.java	(revision 14070)
@@ -62,4 +62,11 @@
         private final Handler prioritizedHandler;
         private OutputStream outputStreamMemo;
+        /**
+         * This variables is set to true as soon as the superconstructor has completed.
+         * The superconstructor calls {@code setOutputStream(System.err)}, any subsequent call of
+         * {@link #setOutputStream(OutputStream)} would then flush and close {@link System#err}. To avoid this,
+         * we override {@link #setOutputStream(OutputStream)} to completely ignore all calls from the superconstructor.
+         */
+        private boolean superCompleted = false;
 
         /**
@@ -76,4 +83,6 @@
             final Handler prioritizedHandler
         ) {
+            super();
+            superCompleted = true;
             this.outputStreamSupplier = outputStreamSupplier;
             this.prioritizedHandler = prioritizedHandler;
@@ -98,8 +107,11 @@
         @Override
         public synchronized void setOutputStream(final OutputStream outputStream) {
-            // this wouldn't be necessary if StreamHandler made it possible to see what the current
-            // output stream is set to
-            this.outputStreamMemo = outputStream;
-            super.setOutputStream(outputStream);
+            // Ignore calls from superconstructor (see javadoc of the variable for details)
+            if (superCompleted) {
+                // this wouldn't be necessary if StreamHandler made it possible to see what the current
+                // output stream is set to
+                this.outputStreamMemo = outputStream;
+                super.setOutputStream(outputStream);
+            }
         }
 
