Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 2541)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 2542)
@@ -616,4 +616,11 @@
     }
 
+    synchronized public String getCollectionAsString(final String key) {
+        String s = get(key);
+        if(s != null && s.length() != 0)
+            s = s.replaceAll("\u001e",",");
+        return s;
+    }
+
     synchronized public Collection<String> getCollection(String key, Collection<String> def) {
         String s = get(key);
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 2541)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 2542)
@@ -95,5 +95,5 @@
     }
 
-    private final static String[] pluginSites = {"http://josm.openstreetmap.de/plugin"};
+    private final static String[] pluginSites = {"http://josm.openstreetmap.de/plugin%<?plugins=>"};
 
     public static Collection<String> getSites() {
@@ -109,4 +109,10 @@
             /* TODO: remove old site files (everything except .jar) */
             try {
+                /* replace %<x> with empty string or x=plugins (separated with comma) */
+                String pl = Main.pref.getCollectionAsString("plugins");
+                if(pl != null && pl.length() != 0)
+                    site = site.replaceAll("%<(.*)>", "$1"+pl);
+                else
+                    site = site.replaceAll("%<(.*)>", "");
                 BufferedReader r = new BufferedReader(new InputStreamReader(new URL(site).openStream(), "utf-8"));
                 new File(Main.pref.getPreferencesDir()+"plugins").mkdir();
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 2541)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 2542)
@@ -352,5 +352,5 @@
     {
         String text = "";
-        String pl = Main.pref.get("plugins");
+        String pl = Main.pref.getCollectionAsString("plugins");
         if(pl != null && pl.length() != 0) {
             text += "Plugins: "+pl+"\n";
