Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 7419)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 7420)
@@ -23,4 +23,5 @@
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -76,6 +77,6 @@
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.io.SaveLayersDialog;
+import org.openstreetmap.josm.gui.layer.AbstractModifiableLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
-import org.openstreetmap.josm.gui.layer.AbstractModifiableLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
@@ -215,4 +216,7 @@
     protected static final Map<String, Throwable> NETWORK_ERRORS = new HashMap<>();
 
+    // First lines of last 10 error and warning messages, used for bug reports
+    private static final List<String> ERRORS_AND_WARNINGS = Collections.<String>synchronizedList(new ArrayList<String>());
+
     /**
      * Logging level (5 = trace, 4 = debug, 3 = info, 2 = warn, 1 = error, 0 = none).
@@ -220,4 +224,27 @@
      */
     public static int logLevel = 3;
+
+    private static void rememberWarnErrorMsg(String msg) {
+        // Only remember first line of message
+        int idx = msg.indexOf('\n');
+        if (idx > 0) {
+            ERRORS_AND_WARNINGS.add(msg.substring(0, idx));
+        } else {
+            ERRORS_AND_WARNINGS.add(msg);
+        }
+        // Only keep 10 lines to avoid memory leak
+        while (ERRORS_AND_WARNINGS.size() > 10) {
+            ERRORS_AND_WARNINGS.remove(0);
+        }
+    }
+
+    /**
+     * Replies the first lines of last 10 error and warning messages, used for bug reports
+     * @return the first lines of last 10 error and warning messages
+     * @since 7420
+     */
+    public static final Collection<String> getLastErrorAndWarnings() {
+        return Collections.unmodifiableList(ERRORS_AND_WARNINGS);
+    }
 
     /**
@@ -231,4 +258,5 @@
         if (msg != null && !msg.isEmpty()) {
             System.err.println(tr("ERROR: {0}", msg));
+            rememberWarnErrorMsg("E: "+msg);
         }
     }
@@ -243,4 +271,5 @@
         if (msg != null && !msg.isEmpty()) {
             System.err.println(tr("WARNING: {0}", msg));
+            rememberWarnErrorMsg("W: "+msg);
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 7419)
+++ trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 7420)
@@ -11,4 +11,5 @@
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -121,4 +122,7 @@
                         shortenParam(it, param, propJavaHome, propJavaHomeAlt);
                     }
+                } else if (value.startsWith("-X")) {
+                    // Remove arguments like -Xbootclasspath/a, -Xverify:remote, that can be very long and unhelpful
+                    it.remove();
                 }
             }
@@ -148,4 +152,13 @@
         text.append(PluginHandler.getBugReportText());
         text.append("\n");
+
+        Collection<String> errorsWarnings = Main.getLastErrorAndWarnings();
+        if (!errorsWarnings.isEmpty()) {
+            text.append("Last errors/warnings:\n");
+            for (String s : errorsWarnings) {
+                text.append("- ").append(s).append("\n");
+            }
+            text.append("\n");
+        }
 
         return text.toString();
Index: trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 7419)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 7420)
@@ -1271,6 +1271,9 @@
         }
         Collections.sort(pl);
+        if (!pl.isEmpty()) {
+            text.append("Plugins:\n");
+        }
         for (String s : pl) {
-            text.append("Plugin: ").append(s).append("\n");
+            text.append("- ").append(s).append("\n");
         }
         return text.toString();
