Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7654)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7655)
@@ -1385,5 +1385,5 @@
      */
     public Collection<String> getPluginSites() {
-        return getCollection("pluginmanager.sites", Collections.singleton(Main.getJOSMWebsite()+"/plugin%<?plugins=>"));
+        return getCollection("pluginmanager.sites", Collections.singleton(Main.getJOSMWebsite()+"/pluginicons%<?plugins=>"));
     }
 
Index: trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 7654)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 7655)
@@ -241,7 +241,12 @@
         author = attr.getValue("Author");
         iconPath = attr.getValue("Plugin-Icon");
-        if (iconPath != null && file != null) {
-            // extract icon from the plugin jar file
-            icon = new ImageProvider(iconPath).setArchive(file).setMaxWidth(24).setMaxHeight(24).setOptional(true).get();
+        if (iconPath != null)
+        {
+            if (file != null) {
+                // extract icon from the plugin jar file
+                icon = new ImageProvider(iconPath).setArchive(file).setMaxWidth(24).setMaxHeight(24).setOptional(true).get();
+            } else if (iconPath.startsWith("data:")) {
+                icon = new ImageProvider(iconPath).setMaxWidth(24).setMaxHeight(24).setOptional(true).get();
+            }
         }
         if (oldcheck && mainversion > Version.getInstance().getVersion()) {
Index: trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 7654)
+++ trunk/src/org/openstreetmap/josm/plugins/ReadLocalPluginInformationTask.java	(revision 7655)
@@ -31,5 +31,5 @@
  *   <li>.jar.new files, assuming that these are downloaded but not yet installed plugins</li>
  *   <li>cached lists of available plugins, downloaded for instance from
- *   <a href="https://josm.openstreetmap.de/plugin">https://josm.openstreetmap.de/plugin</a></li>
+ *   <a href="https://josm.openstreetmap.de/pluginicons">https://josm.openstreetmap.de/pluginicons</a></li>
  * </ul>
  *
@@ -99,29 +99,4 @@
                 Main.warn(tr("Failed to scan file ''{0}'' for plugin information. Skipping.", fname));
                 Main.error(e);
-            }
-            monitor.worked(1);
-        }
-    }
-    protected void scanIconCacheFiles(ProgressMonitor monitor, File pluginsDirectory) {
-        File[] siteCacheFiles = listFiles(pluginsDirectory, "^([0-9]+-)?site.*plugin-icons\\.zip$");
-        if (siteCacheFiles == null || siteCacheFiles.length == 0)
-            return;
-        monitor.subTask(tr("Processing plugin site cache icon files..."));
-        monitor.setTicksCount(siteCacheFiles.length);
-        for (File f: siteCacheFiles) {
-            String fname = f.getName();
-            monitor.setCustomText(tr("Processing file ''{0}''", fname));
-            for (PluginInformation pi : availablePlugins.values()) {
-                if (pi.icon == null && pi.iconPath != null) {
-                    String path = pi.iconPath;
-                    if(!path.startsWith("data:")) {
-                        path = pi.name+".jar/"+path;
-                    }
-                    pi.icon = new ImageProvider(path)
-                                    .setArchive(f)
-                                    .setMaxWidth(24)
-                                    .setMaxHeight(24)
-                                    .setOptional(true).get();
-                }
             }
             monitor.worked(1);
@@ -166,5 +141,4 @@
             monitor.beginTask("");
             scanSiteCacheFiles(monitor, pluginsDirectory);
-            scanIconCacheFiles(monitor, pluginsDirectory);
             scanPluginFiles(monitor, pluginsDirectory);
         } finally {
Index: trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 7654)
+++ trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 7655)
@@ -58,6 +58,4 @@
     private boolean displayErrMsg;
 
-    protected enum CacheType {PLUGIN_LIST, ICON_LIST}
-
     protected final void init(Collection<String> sites, boolean displayErrMsg) {
         this.sites = sites;
@@ -111,5 +109,5 @@
      * @return the file name for the cache file
      */
-    protected File createSiteCacheFile(File pluginDir, String site, CacheType type) {
+    protected File createSiteCacheFile(File pluginDir, String site) {
         String name;
         try {
@@ -131,12 +129,5 @@
                 }
             }
-            switch (type) {
-            case PLUGIN_LIST:
-                sb.append(".txt");
-                break;
-            case ICON_LIST:
-                sb.append("-icons.zip");
-                break;
-            }
+            sb.append(".txt");
             name = sb.toString();
         } catch(MalformedURLException e) {
@@ -257,63 +248,4 @@
 
     /**
-     * Downloads the icon archive from a remote location
-     *
-     * @param site the site URL
-     * @param monitor a progress monitor
-     */
-    protected void downloadPluginIcons(String site, File destFile, ProgressMonitor monitor) {
-        try {
-            site = site.replaceAll("%<(.*)>", "");
-
-            monitor.beginTask("");
-            monitor.indeterminateSubTask(tr("Downloading plugin list from ''{0}''", site));
-
-            URL url = new URL(site);
-            synchronized(this) {
-                connection = Utils.openHttpConnection(url);
-                connection.setRequestProperty("Cache-Control", "no-cache");
-            }
-            try (
-                InputStream in = connection.getInputStream();
-                OutputStream out = new FileOutputStream(destFile)
-            ) {
-                byte[] buffer = new byte[8192];
-                for (int read = in.read(buffer); read != -1; read = in.read(buffer)) {
-                    out.write(buffer, 0, read);
-                }
-            }
-        } catch (MalformedURLException e) {
-            if (canceled) return;
-            Main.error(e);
-            return;
-        } catch (IOException e) {
-            if (canceled) return;
-            handleIOException(monitor, e, tr("Plugin icons download error"), tr("JOSM failed to download plugin icons:"), displayErrMsg);
-            return;
-        } finally {
-            synchronized(this) {
-                if (connection != null) {
-                    connection.disconnect();
-                }
-                connection = null;
-            }
-            monitor.finishTask();
-        }
-        for (PluginInformation pi : availablePlugins) {
-            if (pi.icon == null && pi.iconPath != null) {
-                String path = pi.iconPath;
-                if(!path.startsWith("data:")) {
-                    path = pi.name+".jar/"+path;
-                }
-                pi.icon = new ImageProvider(path)
-                                .setArchive(destFile)
-                                .setMaxWidth(24)
-                                .setMaxHeight(24)
-                                .setOptional(true).get();
-            }
-        }
-    }
-
-    /**
      * Writes the list of plugins to a cache file
      *
@@ -326,5 +258,5 @@
             Main.warn(tr("Failed to create plugin directory ''{0}''. Cannot cache plugin list from plugin site ''{1}''.", pluginDir.toString(), site));
         }
-        File cacheFile = createSiteCacheFile(pluginDir, site, CacheType.PLUGIN_LIST);
+        File cacheFile = createSiteCacheFile(pluginDir, site);
         getProgressMonitor().subTask(tr("Writing plugin list to local cache ''{0}''", cacheFile.toString()));
         try (PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(cacheFile), StandardCharsets.UTF_8))) {
@@ -405,6 +337,5 @@
             String list = downloadPluginList(site, getProgressMonitor().createSubTaskMonitor(0, false));
             if (canceled) return;
-            siteCacheFiles.remove(createSiteCacheFile(pluginDir, site, CacheType.PLUGIN_LIST));
-            siteCacheFiles.remove(createSiteCacheFile(pluginDir, site, CacheType.ICON_LIST));
+            siteCacheFiles.remove(createSiteCacheFile(pluginDir, site));
             if (list != null) {
                 getProgressMonitor().worked(1);
@@ -417,5 +348,4 @@
                 if (canceled) return;
             }
-            downloadPluginIcons(site+"-icons.zip", createSiteCacheFile(pluginDir, site, CacheType.ICON_LIST), getProgressMonitor().createSubTaskMonitor(0, false));
         }
         // remove old stuff or whole update process is broken
