Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7084)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 7085)
@@ -86,8 +86,14 @@
      */
     private File preferencesDirFile = null;
+
     /**
      * Internal storage for the cache directory.
      */
     private File cacheDirFile = null;
+
+    /**
+     * Determines if preferences file is saved each time a property is changed.
+     */
+    private boolean saveOnPut = true;
 
     /**
@@ -1036,8 +1042,10 @@
                 settingsMap.put(key, settingCopy);
             }
-            try {
-                save();
-            } catch (IOException e){
-                Main.warn(tr("Failed to persist preferences to ''{0}''", getPreferenceFile().getAbsoluteFile()));
+            if (saveOnPut) {
+                try {
+                    save();
+                } catch (IOException e){
+                    Main.warn(tr("Failed to persist preferences to ''{0}''", getPreferenceFile().getAbsoluteFile()));
+                }
             }
         }
@@ -1642,3 +1650,15 @@
         return a.equals(b);
     }
+
+    /**
+     * Enables or not the preferences file auto-save mechanism (save each time a setting is changed).
+     * This behaviour is enabled by default.
+     * @param enable if {@code true}, makes JOSM save preferences file each time a setting is changed
+     * @since 7085
+     */
+    public final void enableSaveOnPut(boolean enable) {
+        synchronized (this) {
+            saveOnPut = enable;
+        }
+    }
 }
