Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 9236)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 9238)
@@ -1083,5 +1083,7 @@
             ImageProvider.shutdown(false);
             JCSCacheManager.shutdown();
-            geometry.remember("gui.geometry");
+            if (geometry != null) {
+                geometry.remember("gui.geometry");
+            }
             if (map != null) {
                 map.rememberToggleDialogWidth();
Index: trunk/src/org/openstreetmap/josm/actions/RestartAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 9236)
+++ trunk/src/org/openstreetmap/josm/actions/RestartAction.java	(revision 9238)
@@ -46,5 +46,7 @@
         putValue("help", ht("/Action/Restart"));
         putValue("toolbar", "action/restart");
-        Main.toolbar.register(this);
+        if (Main.toolbar != null) {
+            Main.toolbar.register(this);
+        }
         setEnabled(isRestartSupported());
     }
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 9236)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 9238)
@@ -4,4 +4,6 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 import static org.openstreetmap.josm.tools.I18n.trn;
+import gnu.getopt.Getopt;
+import gnu.getopt.LongOpt;
 
 import java.awt.Dimension;
@@ -48,4 +50,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.PreferencesAction;
+import org.openstreetmap.josm.actions.RestartAction;
 import org.openstreetmap.josm.data.AutosaveTask;
 import org.openstreetmap.josm.data.CustomConfigurator;
@@ -71,7 +74,4 @@
 import org.openstreetmap.josm.tools.PlatformHookWindows;
 import org.openstreetmap.josm.tools.Utils;
-
-import gnu.getopt.Getopt;
-import gnu.getopt.LongOpt;
 
 /**
@@ -583,4 +583,6 @@
                     if (wasv6 && !hasv6) {
                         Main.info(tr("Detected no useable IPv6 network, prefering IPv4 over IPv6 after next restart."));
+                        Main.pref.put("validated.ipv6", hasv6); // be sure it is stored before the restart!
+                        new RestartAction().actionPerformed(null);
                     }
                     Main.pref.put("validated.ipv6", hasv6);
