Index: /trunk/src/org/openstreetmap/josm/actions/HelpAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1519)
+++ /trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1520)
@@ -49,4 +49,7 @@
     private JFrame helpBrowser = new JFrame(tr("JOSM Online Help"));
     private String baseurl = Main.pref.get("help.baseurl", "http://josm.openstreetmap.de");
+    private String pathbase = Main.pref.get("help.pathbase", "/wiki/");
+    private String pathhelp = Main.pref.get("help.pathhelp", "Help/");
+    private String pathmenu = Main.pref.get("help.pathmenu", "Menu/");
     private JEditorPane help = new JEditorPane();
     private WikiReader reader = new WikiReader(baseurl);
@@ -119,10 +122,10 @@
             if (topic == null) {
                 helpBrowser.setVisible(false);
-                setHelpUrl(baseurl+"/wiki/Help");
+                setHelpUrl(baseurl+pathbase+"Help");
             } else
                 help(topic);
         } else {
             helpBrowser.setVisible(false);
-            setHelpUrl(baseurl+"/wiki/Help");
+            setHelpUrl(baseurl+pathbase+"Help");
         }
     }
@@ -138,5 +141,5 @@
             if (b.getClientProperty("help") != null)
                 return (String)b.getClientProperty("help");
-            return "Menu/"+b.getText();
+            return pathmenu+b.getText();
         }
         if (c instanceof AbstractButton) {
@@ -159,5 +162,5 @@
     public void help(String topic) {
         helpBrowser.setVisible(false);
-        setHelpUrl(baseurl+"/wiki/Help/"+topic);
+        setHelpUrl(baseurl+pathbase+pathhelp+topic);
     }
 
@@ -167,8 +170,8 @@
      */
     public void setHelpUrl(String url) {
-        int i = url.indexOf("/wiki/Help")+6;
         String langurl = url;
-        if(i > 0)
+        if(url.startsWith(baseurl+pathbase))
         {
+            int i = pathbase.length()+baseurl.length();
             String title = url.substring(i);
             if(languageCode.length() != 0 && !title.startsWith(languageCode))
@@ -193,7 +196,6 @@
       boolean loaded = false;
       try {
-          help.read(new StringReader(reader.read(this.url)),
-          help.getEditorKit().createDefaultDocument());
-          if(help.getText().length() == 0)
+          String txt = reader.read(this.url);
+          if(txt.length() == 0)
           {
               if(lang)
@@ -203,14 +205,16 @@
                 if(url.equals(langurl))
                 {
-                    help.setText("<HTML>"+tr("Helppage missing. Create it in <A HREF=\"{0}\">english</A>.",
+                    txt = ("<HTML>"+tr("Helppage missing. Create it in <A HREF=\"{0}\">english</A>.",
                     url+"?action=edit")+"</HTML>");
                 }
                 else
                 {
-                    help.setText("<HTML>"+tr("Helppage missing. Create it in <A HREF=\"{0}\">english</A> or <A HREF=\"{1}\">your language</A>.",
+                    txt = ("<HTML>"+tr("Helppage missing. Create it in <A HREF=\"{0}\">english</A> or <A HREF=\"{1}\">your language</A>.",
                     url+"?action=edit", langurl+"?action=edit")+"</HTML>");
                 }
               }
           }
+          help.setText(txt);
+          help.setCaretPosition(0);
           loaded = true;
       } catch (IOException ex) {
