### Eclipse Workspace Patch 1.0
#P core
Index: src/org/openstreetmap/josm/plugins/PluginSelection.java
===================================================================
--- src/org/openstreetmap/josm/plugins/PluginSelection.java	(Revision 1578)
+++ src/org/openstreetmap/josm/plugins/PluginSelection.java	(Arbeitskopie)
@@ -8,7 +8,6 @@
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
@@ -30,10 +29,10 @@
 import javax.swing.JEditorPane;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.UIManager;
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
 import javax.swing.event.HyperlinkEvent.EventType;
-import javax.swing.UIManager;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.ExtendedDialog;
@@ -132,10 +131,17 @@
 
         if (pluginMap == null)
             pluginMap = new HashMap<String, Boolean>();
-        else
+        else {
             // Keep the map in bounds; possibly slightly pointless.
-            for (final String pname : pluginMap.keySet())
-                if (availablePlugins.get(pname) == null) pluginMap.remove(pname);
+            Set<String> pluginsToRemove = new HashSet<String>();
+            for (final String pname : pluginMap.keySet()) {
+                if (availablePlugins.get(pname) == null) pluginsToRemove.add(pname);
+            }
+            
+            for (String pname : pluginsToRemove) {
+                pluginMap.remove(pname);
+            }
+        }
 
         pluginPanel.removeAll();
 
