Index: trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java	(revision 8937)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginDownloadTask.java	(revision 8938)
@@ -162,5 +162,7 @@
         for (PluginInformation d : toUpdate) {
             if (canceled) return;
-            progressMonitor.subTask(tr("Downloading Plugin {0}...", d.name));
+            String message = tr("Downloading Plugin {0}...", d.name);
+            Main.info(message);
+            progressMonitor.subTask(message);
             progressMonitor.worked(1);
             File pluginFile = new File(pluginDir, d.name + ".jar.new");
Index: trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 8937)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 8938)
@@ -232,4 +232,10 @@
 
     /**
+     * All exceptions that occured during plugin loading
+     * @since 8938
+     */
+    public static final Map<String, Exception> pluginLoadingExceptions = new HashMap<>();
+
+    /**
      * Global plugin ClassLoader.
      */
@@ -279,5 +285,5 @@
         // notify user about removed deprecated plugins
         //
-        StringBuilder sb = new StringBuilder();
+        StringBuilder sb = new StringBuilder(32);
         sb.append("<html>")
           .append(trn(
@@ -308,4 +314,5 @@
      *
      * Asks the user for every unmaintained plugin whether it should be removed.
+     * @param parent The parent Component used to display warning popup
      *
      * @param plugins the collection of plugins
@@ -316,5 +323,5 @@
                 continue;
             }
-            String msg =  tr("<html>Loading of the plugin \"{0}\" was requested."
+            String msg = tr("<html>Loading of the plugin \"{0}\" was requested."
                     + "<br>This plugin is no longer developed and very likely will produce errors."
                     +"<br>It should be disabled.<br>Delete from preferences?</html>", unmaintained);
@@ -702,4 +709,5 @@
             msg = null;
         } catch (PluginException e) {
+            pluginLoadingExceptions.put(plugin.name, e);
             Main.error(e);
             if (e.getCause() instanceof ClassNotFoundException) {
@@ -708,4 +716,5 @@
             }
         }  catch (Exception e) {
+            pluginLoadingExceptions.put(plugin.name, e);
             Main.error(e);
         }
@@ -1449,4 +1458,18 @@
     }
 
+    /**
+     * Returns the set of deprecated and unmaintained plugins.
+     * @return set of deprecated and unmaintained plugins names.
+     * @since 8938
+     */
+    public static Set<String> getDeprecatedAndUnmaintainedPlugins() {
+        Set<String> result = new HashSet<>(DEPRECATED_PLUGINS.size() + UNMAINTAINED_PLUGINS.length);
+        for (DeprecatedPlugin dp : DEPRECATED_PLUGINS) {
+            result.add(dp.name);
+        }
+        result.addAll(Arrays.asList(UNMAINTAINED_PLUGINS));
+        return result;
+    }
+
     private static class UpdatePluginsMessagePanel extends JPanel {
         private JMultilineLabel lblMessage;
