Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 1355)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 1356)
@@ -22,4 +22,5 @@
 
 import javax.swing.JComponent;
+import javax.swing.JFrame;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
@@ -116,4 +117,9 @@
 
     /**
+     * The MOTD Layer.
+     */
+    private GettingStarted gettingStarted=new GettingStarted();
+
+    /**
      * Print a debug message if debugging is on.
      */
@@ -145,5 +151,5 @@
         else {
             old.destroy();
-            panel.add(new GettingStarted(), BorderLayout.CENTER);
+            panel.add(gettingStarted, BorderLayout.CENTER);
         }
         panel.setVisible(true);
@@ -174,6 +180,5 @@
         platform.startupHook();
         contentPane.add(panel, BorderLayout.CENTER);
-        if(splash != null) splash.setStatus(tr("Download \"Message of the day\""));
-        panel.add(new GettingStarted(), BorderLayout.CENTER);
+        panel.add(gettingStarted, BorderLayout.CENTER);
 
         if(splash != null) splash.setStatus(tr("Creating main GUI"));
@@ -274,9 +279,9 @@
 
         Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
-	String geometry = Main.pref.get("gui.geometry");
+        String geometry = Main.pref.get("gui.geometry");
         if (args.containsKey("geometry")) {
             geometry = args.get("geometry").iterator().next();
-	}
-	if (geometry.length() != 0) {
+        }
+        if (geometry.length() != 0) {
             final Matcher m = Pattern.compile("(\\d+)x(\\d+)(([+-])(\\d+)([+-])(\\d+))?").matcher(geometry);
             if (m.matches()) {
@@ -293,8 +298,8 @@
                 }
                 bounds = new Rectangle(x,y,w,h);
-		if(!Main.pref.get("gui.geometry").equals(geometry)) {
-		    // remember this geometry
-		    Main.pref.put("gui.geometry", geometry);
-		}
+                if(!Main.pref.get("gui.geometry").equals(geometry)) {
+                    // remember this geometry
+                    Main.pref.put("gui.geometry", geometry);
+                }
             } else
                 System.out.println("Ignoring malformed geometry: "+geometry);
@@ -411,15 +416,29 @@
 
     static public void saveGuiGeometry() {
-	// if the gui.geometry preference is already set,
-	// save the current window geometry
-	String curGeometryPref = pref.get("gui.geometry");
-	if(curGeometryPref.length() != 0) {
-	    Rectangle bounds = parent.getBounds();
-	    pref.put("gui.geometry",
-		     (int)bounds.getWidth() +
-		     "x" + (int)bounds.getHeight() +
-		     "+" + (int)bounds.getX() +
-		     "+" + (int)bounds.getY());
-	}
+        // save the current window geometry
+        String newGeometry = "";
+        try {
+            if(((JFrame)parent).getExtendedState() == JFrame.NORMAL) {
+                Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
+                Rectangle bounds = parent.getBounds();
+                int width = (int)bounds.getWidth();
+                int height = (int)bounds.getHeight();
+                int x = (int)bounds.getX();
+                int y = (int)bounds.getY();
+                if(width > screenDimension.width)
+                    width = screenDimension.width;
+                if(height > screenDimension.height)
+                    width = screenDimension.height;
+                if(x < 0)
+                    x = 0;
+                if(y < 0)
+                    y = 0;
+                newGeometry = width + "x" + height + "+" + x + "+" + y;
+            }
+        }
+        catch (Exception e) {
+            System.out.println("Failed to save GUI geometry: " + e);
+        }
+        pref.put("gui.geometry", newGeometry);
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 1355)
+++ trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 1356)
@@ -33,4 +33,8 @@
 
     static private String content = "";
+    static private String styles = "<style type=\"text/css\">\n"+
+            "body { font-family: sans-serif; font-weight: bold; }\n"+
+            "h1 {text-align: center;}\n"+
+            "</style>\n";
 
     public class LinkGeneral extends JEditorPane implements HyperlinkListener {
@@ -102,5 +106,5 @@
             motdcontent = wr.read(baseurl + "/wiki/MessageOfTheDay?format=txt");
         } catch (IOException ioe) {
-            motdcontent = "<html><body>\n<h1>" +
+            motdcontent = "<html>" + styles + "<body><h1>" +
                 "JOSM - " + tr("Java OpenStreetMap Editor") +
                 "</h1>\n<h2 align=\"center\">(" +
@@ -179,8 +183,5 @@
         
         content = "<html>\n"+
-            "<style type=\"text/css\">\n"+
-            "body { font-family: sans-serif; font-weight: bold; }\n"+
-            "h1 {text-align: center;}\n"+
-            "</style>\n"+
+            styles +
             "<h1>JOSM - " + tr("Java OpenStreetMap Editor") + "</h1>\n"+
             content+"\n"+
@@ -190,8 +191,14 @@
     public GettingStarted() {
         super(new BorderLayout());
-        final LinkGeneral lg = new LinkGeneral(tr("Download \"Message of the day\""));
+        final LinkGeneral lg = new LinkGeneral(
+            "<html>" +
+            styles +
+            "<h1>" +
+            "JOSM - " +
+            tr("Java OpenStreetMap Editor") +
+            "</h1><h2 align=\"center\">" +
+            tr("Downloading \"Message of the day\"") +
+            "</h2>");
         JScrollPane scroller = new JScrollPane(lg);
-        // panel.add(GBC.glue(0,1), GBC.eol());
-        //panel.setMinimumSize(new Dimension(400, 600));
         Component linkGeneral = new LinkGeneral(content);
         scroller.setViewportBorder(new EmptyBorder(10,100,10,100));
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1355)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1356)
@@ -178,5 +178,5 @@
         splash.closeSplash();
 
-        if (!args.containsKey("no-fullscreen") && !args.containsKey("geometry") && Main.pref.get("gui.geometry") == null && Toolkit.getDefaultToolkit().isFrameStateSupported(JFrame.MAXIMIZED_BOTH))
+        if (!args.containsKey("no-fullscreen") && !args.containsKey("geometry") && Main.pref.get("gui.geometry").length() == 0 && Toolkit.getDefaultToolkit().isFrameStateSupported(JFrame.MAXIMIZED_BOTH))
             mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
 
