Index: trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 5060)
+++ trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 5061)
@@ -9,4 +9,5 @@
 import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URL;
@@ -57,5 +58,5 @@
      * Grabs current MOTD from cache or webpage and parses it.
      */
-    private static class MotdContent extends CacheCustomContent<RuntimeException> {
+    private static class MotdContent extends CacheCustomContent<IOException> {
         public MotdContent() {
             super("motd.html", CacheCustomContent.INTERVAL_DAILY);
@@ -70,10 +71,6 @@
          */
         @Override
-        protected byte[] updateData() {
+        protected byte[] updateData() throws IOException {
             String motd = new WikiReader().readLang("StartupPage");
-            if (motd.length() == 0) {
-                motd = "<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
-                + "</h1>\n<h2 align=\"center\">(" + tr("Message of the day not available") + ")</h2></html>";
-            }
             // Save this to prefs in case JOSM is updated so MOTD can be refreshed
             Main.pref.putInteger("cache.motd.html.version", myVersion);
@@ -118,10 +115,18 @@
         // Asynchronously get MOTD to speed-up JOSM startup
         Thread t = new Thread(new Runnable() {
+            @Override
             public void run() {
-                if (content.length() == 0 && Main.pref.getBoolean("help.displaymotd", true)) {
-                    content = new MotdContent().updateIfRequiredString();
+                if (content.isEmpty() && Main.pref.getBoolean("help.displaymotd", true)) {
+                    try {
+                        content = new MotdContent().updateIfRequiredString();
+                    } catch (IOException ex) {
+                        System.out.println(tr("Warning: failed to read MOTD. Exception was: {1}", ex.toString()));
+                        content = "<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
+                                + "</h1>\n<h2 align=\"center\">(" + tr("Message of the day not available") + ")</h2></html>";
+                    }
                 }
 
                 EventQueue.invokeLater(new Runnable() {
+                    @Override
                     public void run() {
                         lg.setText(fixImageLinks(content));
Index: trunk/src/org/openstreetmap/josm/tools/WikiReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 5060)
+++ trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 5061)
@@ -1,6 +1,4 @@
 // License: GPL. Copyright 2007 by Immanuel Scholz and others
 package org.openstreetmap.josm.tools;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.io.BufferedReader;
@@ -45,57 +43,20 @@
     }
 
-    public String readLang(String text) {
+    public String readLang(String text) throws IOException {
         String languageCode = LanguageInfo.getWikiLanguagePrefix();
-        String url = baseurl + "/wiki/" + languageCode + text;
-        String res = "";
-        InputStream in = null;
-        try {
-            in = new URL(url).openStream();
-            res = readFromTrac(new BufferedReader(new InputStreamReader(in, "utf-8")));
-        } catch (IOException ioe) {
-            System.out.println(tr("Warning: failed to read MOTD from ''{0}''. Exception was: {1}", url, ioe
-                    .toString()));
-        } catch(SecurityException e) {
-            System.out.println(tr(
-                    "Warning: failed to read MOTD from ''{0}'' for security reasons. Exception was: {1}", url, e
-                    .toString()));
-        } finally {
-            if (in != null) {
-                try {
-                    in.close();
-                } catch (IOException e) {
-                }
-            }
+        String res = readLang(new URL(baseurl + "/wiki/" + languageCode + text));
+        if (res.isEmpty() && !languageCode.isEmpty()) {
+            res = readLang(new URL(baseurl + "/wiki/" + text));
         }
-        if (res.length() == 0 && languageCode.length() != 0) {
-            url = baseurl + "/wiki/" + text;
-            try {
-                in = new URL(url).openStream();
-            } catch (IOException e) {
-                System.out.println(tr("Warning: failed to read MOTD from ''{0}''. Exception was: {1}", url, e
-                        .toString()));
-                return res;
-            } catch (SecurityException e) {
-                System.out.println(tr(
-                        "Warning: failed to read MOTD from ''{0}'' for security reasons. Exception was: {1}", url, e
-                        .toString()));
-                return res;
-            }
-            try {
-                res = readFromTrac(new BufferedReader(new InputStreamReader(in, "utf-8")));
-            } catch (IOException ioe) {
-                System.out.println(tr("Warning: failed to read MOTD from ''{0}''. Exception was: {1}", url, ioe
-                        .toString()));
-                return res;
-            } finally {
-                if (in != null) {
-                    try {
-                        in.close();
-                    } catch (IOException e) {
-                    }
-                }
-            }
+        if (res.isEmpty()) {
+            throw new IOException(text + " does not exist");
+        } else {
+            return res;
         }
-        return res;
+    }
+
+    private String readLang(URL url) throws IOException {
+        InputStream in = url.openStream();
+        return readFromTrac(new BufferedReader(new InputStreamReader(in, "utf-8")));
     }
 
