Index: core/src/org/openstreetmap/josm/tools/OpenBrowser.java
===================================================================
--- core/src/org/openstreetmap/josm/tools/OpenBrowser.java	(revision 5824)
+++ core/src/org/openstreetmap/josm/tools/OpenBrowser.java	(working copy)
@@ -4,13 +4,19 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.Desktop;
+import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
 
 import javax.swing.JApplet;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.io.UTFInputStreamReader;
 
 /**
  * Helper to open platform web browser on different platforms
@@ -28,6 +34,7 @@
     }
     
     /**
+     * @param uri The URI to display
      * @return <code>null</code> for success or a string in case of an error.
      * @throws IllegalStateException thrown if no platform is set to which opening the URL can be dispatched,
      * {@link Main#platform}
@@ -42,6 +49,29 @@
                 return mue.getMessage();
             }
         }
+        
+        // Windows cannot open URLs longer than 2047 or 2083 characters. Make a tiny url for large URLs (such as bug reports)
+        // See http://josm.openstreetmap.de/ticket/8571#comment:3
+        if (Main.platform instanceof PlatformHookWindows && uri.toString().length() > 2047) {
+            String tinyUrlRequest = "http://tinyurl.com/api-create.php?url="+uri.toString();
+            try {
+                HttpURLConnection connection = Utils.openHttpConnection(new URL(tinyUrlRequest));
+                InputStream inputStream = connection.getInputStream();
+                BufferedReader br = new BufferedReader(UTFInputStreamReader.create(inputStream, "UTF-8"));
+                String tinyUrlAnswer = br.readLine();
+                try {
+                    uri = new URI(tinyUrlAnswer);
+                } catch (URISyntaxException e) {
+                    System.err.println("Cannot create URL "+tinyUrlAnswer);
+                }
+                br.close();
+                connection.disconnect();
+            } catch (MalformedURLException e) {
+                System.err.println("Cannot create URL "+tinyUrlRequest);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
 
         if (Desktop.isDesktopSupported()) {
             try {
