diff --git a/src/org/openstreetmap/josm/gui/MainApplication.java b/src/org/openstreetmap/josm/gui/MainApplication.java
index 79450865b7..c518a3430a 100644
--- a/src/org/openstreetmap/josm/gui/MainApplication.java
+++ b/src/org/openstreetmap/josm/gui/MainApplication.java
@@ -150,6 +150,7 @@ import org.openstreetmap.josm.plugins.PluginInformation;
 import org.openstreetmap.josm.spi.lifecycle.InitStatusListener;
 import org.openstreetmap.josm.spi.lifecycle.Lifecycle;
 import org.openstreetmap.josm.spi.preferences.Config;
+import org.openstreetmap.josm.spi.preferences.IPreferences;
 import org.openstreetmap.josm.tools.FontsManager;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.Http1Client;
@@ -1300,12 +1301,21 @@ public class MainApplication {
                     hasv6 = false;
                     Logging.trace(e);
                 }
+                Config.getPref().putBoolean("validated.ipv6", hasv6); // be sure it is stored before the restart!
                 if (wasv6 && !hasv6) {
                     Logging.info(tr("Detected no usable IPv6 network, preferring IPv4 over IPv6 after next restart."));
-                    Config.getPref().putBoolean("validated.ipv6", hasv6); // be sure it is stored before the restart!
+                    IPreferences iPreferences = Config.getPref();
+                    if (iPreferences instanceof Preferences) {
+                        try {
+                            // Force preferences to save
+                            ((Preferences) iPreferences).save();
+                            Logging.trace("Preferences saved for IPv6");
+                        } catch (IOException e) {
+                            throw new JosmRuntimeException(e);
+                        }
+                    }
                     RestartAction.restartJOSM();
                 }
-                Config.getPref().putBoolean("validated.ipv6", hasv6);
             }, "IPv6-checker").start();
         }
     }
