Index: trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 1590)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 1591)
@@ -83,5 +83,5 @@
         /* TODO: remove old site files (everything except .jar) */
             try {
-                BufferedReader r = new BufferedReader(new InputStreamReader(new URL(site).openStream()));
+                BufferedReader r = new BufferedReader(new InputStreamReader(new URL(site).openStream(), "utf-8"));
                 StringBuilder b = new StringBuilder();
                 for (String line = r.readLine(); line != null; line = r.readLine())
Index: trunk/src/org/openstreetmap/josm/plugins/PluginSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginSelection.java	(revision 1590)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginSelection.java	(revision 1591)
@@ -13,5 +13,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileReader;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
 import java.io.IOException;
 import java.util.Arrays;
@@ -270,6 +271,7 @@
                         }
                     } else if (fname.matches("^[0-9]+-site.*\\.txt$")) {
+                        int err = 0;
                         try {
-                            BufferedReader r = new BufferedReader(new FileReader(f));
+                            BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(f), "utf-8"));
                             String name = null;
                             String url = null;
@@ -291,14 +293,22 @@
                                     if(name != null)
                                     {
-                                        PluginInformation info = new PluginInformation(null, name.substring(0,name.length()-4),
-                                        new ByteArrayInputStream(manifest.getBytes()));
-                                        info.downloadlink = url;
-                                        if(!availablePlugins.containsKey(info.name))
-                                            availablePlugins.put(info.name, info);
-                                        manifest = null;
+                                        try
+                                        {
+                                            PluginInformation info = new PluginInformation(null, name.substring(0,name.length()-4),
+                                            new ByteArrayInputStream(manifest.getBytes()));
+                                            info.downloadlink = url;
+                                            if(!availablePlugins.containsKey(info.name))
+                                                availablePlugins.put(info.name, info);
+                                        }
+                                        catch (Exception e)
+                                        {
+                                            e.printStackTrace();
+                                            ++err;
+                                        }
                                     }
                                     String x[] = line.split(";");
                                     name = x[0];
                                     url = x[1];
+                                    manifest = null;
                                 }
                             }
@@ -314,5 +324,9 @@
                         } catch (Exception e) {
                             e.printStackTrace();
-                            JOptionPane.showMessageDialog(Main.parent, tr("Error reading plugin information file: {0}", f.getName()));
+                            ++err;
+                        }
+                        if(err > 0)
+                        {
+                          JOptionPane.showMessageDialog(Main.parent, tr("Error reading plugin information file: {0}", f.getName()));
                         }
                     }
