Index: /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 15736)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 15737)
@@ -89,5 +89,5 @@
      * Deprecated plugins that are removed on start
      */
-    static final Collection<DeprecatedPlugin> DEPRECATED_PLUGINS;
+    static final List<DeprecatedPlugin> DEPRECATED_PLUGINS;
     static {
         String inCore = tr("integrated into main program");
@@ -160,4 +160,5 @@
             new DeprecatedPlugin("rapid", tr(replacedByPlugin, "MapWithAI"))
         );
+        Collections.sort(DEPRECATED_PLUGINS);
     }
 
@@ -368,4 +369,13 @@
         // notify user about removed deprecated plugins
         //
+        JOptionPane.showMessageDialog(
+                parent,
+                getRemovedPluginsMessage(removedPlugins),
+                tr("Warning"),
+                JOptionPane.WARNING_MESSAGE
+        );
+    }
+
+    static String getRemovedPluginsMessage(Collection<DeprecatedPlugin> removedPlugins) {
         StringBuilder sb = new StringBuilder(32);
         sb.append("<html>")
@@ -383,10 +393,5 @@
         }
         sb.append("</ul></html>");
-        JOptionPane.showMessageDialog(
-                parent,
-                sb.toString(),
-                tr("Warning"),
-                JOptionPane.WARNING_MESSAGE
-        );
+        return sb.toString();
     }
 
@@ -406,13 +411,16 @@
                 continue;
             }
-            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>",
-                    Utils.escapeReservedCharactersHTML(unmaintained));
-            if (confirmDisablePlugin(parent, msg, unmaintained)) {
+            if (confirmDisablePlugin(parent, getUnmaintainedPluginMessage(unmaintained), unmaintained)) {
                 PreferencesUtils.removeFromList(Config.getPref(), "plugins", unmaintained);
                 plugins.remove(unmaintained);
             }
         }
+    }
+
+    static String getUnmaintainedPluginMessage(String unmaintained) {
+        return 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>",
+                Utils.escapeReservedCharactersHTML(unmaintained));
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTest.java	(revision 15736)
+++ /trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTest.java	(revision 15737)
@@ -13,4 +13,5 @@
 import java.util.stream.Stream;
 
+import javax.swing.JOptionPane;
 import javax.swing.JScrollPane;
 
@@ -26,4 +27,5 @@
 import org.openstreetmap.josm.testutils.mockers.HelpAwareOptionPaneMocker;
 import org.openstreetmap.josm.testutils.mockers.JOptionPaneSimpleMocker;
+
 import com.google.common.collect.ImmutableMap;
 
@@ -58,14 +60,12 @@
     public void testBuildListOfPluginsToLoad() {
         TestUtils.assumeWorkingJMockit();
-        final HelpAwareOptionPaneMocker haMocker = new HelpAwareOptionPaneMocker() {
-            @Override
-            public String getStringFromMessage(final Object message) {
-                return ((String) message).substring(0, 66);
-            }
-        };
-        haMocker.getMockResultMap().put(
-            "<html>JOSM could not find information about the following plugins:",
-            "OK"
-        );
+        final HelpAwareOptionPaneMocker haMocker = new HelpAwareOptionPaneMocker(
+                PluginHandler.UNMAINTAINED_PLUGINS.stream().collect(
+                Collectors.toMap(PluginHandler::getUnmaintainedPluginMessage, p -> "Disable plugin")));
+        final JOptionPaneSimpleMocker jopsMocker = new JOptionPaneSimpleMocker();
+        jopsMocker.getMockResultMap().put(
+                PluginHandler.getRemovedPluginsMessage(PluginHandler.DEPRECATED_PLUGINS),
+                JOptionPane.OK_OPTION
+            );
         final String old = System.getProperty("josm.plugins");
         try {
@@ -86,8 +86,13 @@
         }
 
-        assertEquals(1, haMocker.getInvocationLog().size());
-        Object[] invocationLogEntry = haMocker.getInvocationLog().get(0);
+        assertEquals(1, jopsMocker.getInvocationLog().size());
+        Object[] invocationLogEntry = jopsMocker.getInvocationLog().get(0);
         assertEquals(0, (int) invocationLogEntry[0]);
         assertEquals("Warning", invocationLogEntry[2]);
+
+        assertEquals(PluginHandler.UNMAINTAINED_PLUGINS.size(), haMocker.getInvocationLog().size());
+        invocationLogEntry = haMocker.getInvocationLog().get(0);
+        assertEquals(0, (int) invocationLogEntry[0]);
+        assertEquals("Disable plugin", invocationLogEntry[2]);
     }
 
