Index: /trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java	(revision 9296)
@@ -163,7 +163,5 @@
                 } finally {
                     if (tempFile) {
-                        if (!file.delete()) {
-                            file.deleteOnExit();
-                        }
+                        Utils.deleteFile(file);
                         file = null;
                     }
Index: /trunk/src/org/openstreetmap/josm/data/AutosaveTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/AutosaveTask.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/data/AutosaveTask.java	(revision 9296)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.data;
 
+import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
@@ -40,4 +41,5 @@
 import org.openstreetmap.josm.io.OsmExporter;
 import org.openstreetmap.josm.io.OsmImporter;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -194,11 +196,6 @@
         while (info.backupFiles.size() > PROP_FILES_PER_LAYER.get()) {
             File oldFile = info.backupFiles.remove();
-            if (!oldFile.delete()) {
-                Main.warn(tr("Unable to delete old backup file {0}", oldFile.getAbsolutePath()));
-            } else {
-                File pidFile = getPidFile(oldFile);
-                if (!pidFile.delete()) {
-                    Main.warn(tr("Unable to delete old backup file {0}", pidFile.getAbsolutePath()));
-                }
+            if (Utils.deleteFile(oldFile, marktr("Unable to delete old backup file {0}"))) {
+                Utils.deleteFile(getPidFile(oldFile), marktr("Unable to delete old backup file {0}"));
             }
         }
@@ -273,6 +270,6 @@
                         }
                         for (File file: info.backupFiles) {
-                            if (file.delete()) {
-                                getPidFile(file).delete();
+                            if (Utils.deleteFile(file)) {
+                                Utils.deleteFile(getPidFile(file));
                             }
                         }
@@ -369,18 +366,14 @@
         if (backupFile.exists()) {
             deletedLayers.remove(backupFile);
-            if (!backupFile.delete()) {
-                Main.warn(String.format("Could not delete old backup file %s", backupFile));
-            }
+            Utils.deleteFile(backupFile, marktr("Unable to delete old backup file {0}"));
         }
         if (f.renameTo(backupFile)) {
             deletedLayers.add(backupFile);
-            pidFile.delete();
+            Utils.deleteFile(pidFile);
         } else {
             Main.warn(String.format("Could not move autosaved file %s to %s folder", f.getName(), deletedLayersDir.getName()));
             // we cannot move to deleted folder, so just try to delete it directly
-            if (!f.delete()) {
-                Main.warn(String.format("Could not delete backup file %s", f));
-            } else if (!pidFile.delete()) {
-                Main.warn(String.format("Could not delete PID file %s", pidFile));
+            if (Utils.deleteFile(f, marktr("Unable to delete backup file {0}"))) {
+                Utils.deleteFile(pidFile, marktr("Unable to delete PID file {0}"));
             }
         }
@@ -390,7 +383,5 @@
                 break;
             }
-            if (!next.delete()) {
-                Main.warn(String.format("Could not delete archived backup file %s", next));
-            }
+            Utils.deleteFile(next, marktr("Unable to delete archived backup file {0}"));
         }
     }
Index: /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 9296)
@@ -314,8 +314,6 @@
             }
         }
-        try {
-            f.delete();
-        } catch (Exception e) {
-            log("Warning: Can not delete file "+f.getPath()+": "+e.getMessage());
+        if (!Utils.deleteFile(f)) {
+            log("Warning: Can not delete file "+f.getPath());
         }
     }
Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 9296)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.data;
 
+import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
@@ -872,7 +873,5 @@
         File tmpFile = new File(prefFile + "_tmp");
         Utils.copyFile(tmpFile, prefFile);
-        if (!tmpFile.delete()) {
-            Main.warn(tr("Unable to delete temporary file {0}", tmpFile.getAbsolutePath()));
-        }
+        Utils.deleteFile(tmpFile, marktr("Unable to delete temporary file {0}"));
 
         setCorrectPermissions(prefFile);
Index: /trunk/src/org/openstreetmap/josm/gui/io/DownloadFileTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/DownloadFileTask.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/gui/io/DownloadFileTask.java	(revision 9296)
@@ -23,4 +23,5 @@
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.tools.HttpClient;
+import org.openstreetmap.josm.tools.Utils;
 import org.xml.sax.SAXException;
 
@@ -132,5 +133,5 @@
                     Main.info(tr("Unpacking {0} into {1}", file.getAbsolutePath(), file.getParent()));
                     unzipFileRecursively(file, file.getParent());
-                    file.delete();
+                    Utils.deleteFile(file);
                 }
             }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 9296)
@@ -666,5 +666,5 @@
                 }
 
-                if (toDelete.getFile().delete()) {
+                if (Utils.deleteFile(toDelete.getFile())) {
                     Main.info("File "+toDelete.getFile()+" deleted. ");
                 } else {
Index: /trunk/src/org/openstreetmap/josm/io/CachedFile.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 9296)
@@ -335,5 +335,5 @@
                     File lfile = new File(localPath.get(1));
                     if (lfile.exists()) {
-                        lfile.delete();
+                        Utils.deleteFile(lfile);
                     }
                 }
Index: /trunk/src/org/openstreetmap/josm/io/OsmExporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmExporter.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/io/OsmExporter.java	(revision 9296)
@@ -93,5 +93,5 @@
             if (noBackup || !Main.pref.getBoolean("save.keepbackup", false)) {
                 if (tmpFile != null) {
-                    tmpFile.delete();
+                    Utils.deleteFile(tmpFile);
                 }
             }
Index: /trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java	(revision 9296)
@@ -326,5 +326,5 @@
         // remove old stuff or whole update process is broken
         for (File file: siteCacheFiles) {
-            file.delete();
+            Utils.deleteFile(file);
         }
     }
Index: /trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 9296)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.tools;
 
+import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
@@ -366,7 +367,5 @@
                         Main.info("Copying old preferences file to new location");
                         Utils.copyFile(oldPref, newPref);
-                        if (!oldPref.delete()) {
-                            Main.warn("Unable to delete old preferences file: "+oldPref.getPath());
-                        }
+                        Utils.deleteFile(oldPref, marktr("Unable to delete old preferences file {0}"));
                     } catch (IOException e) {
                         Main.error(e);
Index: /trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 9296)
@@ -190,5 +190,5 @@
     public boolean rename(File from, File to) {
         if (to.exists())
-            to.delete();
+            Utils.deleteFile(to);
         return from.renameTo(to);
     }
Index: /trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 9295)
+++ /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 9296)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.tools;
 
+import static org.openstreetmap.josm.tools.I18n.marktr;
 import static org.openstreetmap.josm.tools.I18n.tr;
 import static org.openstreetmap.josm.tools.I18n.trn;
@@ -446,6 +447,6 @@
                     if (file.isDirectory()) {
                         deleteDirectory(file);
-                    } else if (!file.delete()) {
-                        Main.warn("Unable to delete file: "+file.getPath());
+                    } else {
+                        deleteFile(file);
                     }
                 }
@@ -453,4 +454,31 @@
         }
         return path.delete();
+    }
+
+    /**
+     * Deletes a file and log a default warning if the deletion fails.
+     * @param file file to delete
+     * and must contain a single parameter <code>{0}</code> for the file path
+     * @return {@code true} if and only if the file is successfully deleted; {@code false} otherwise
+     * @since XXXX
+     */
+    public static boolean deleteFile(File file) {
+        return deleteFile(file, marktr("Unable to delete file {0}"));
+    }
+
+    /**
+     * Deletes a file and log a configurable warning if the deletion fails.
+     * @param file file to delete
+     * @param warnMsg warning message. It will be translated with {@code tr()}
+     * and must contain a single parameter <code>{0}</code> for the file path
+     * @return {@code true} if and only if the file is successfully deleted; {@code false} otherwise
+     * @since XXXX
+     */
+    public static boolean deleteFile(File file, String warnMsg) {
+        boolean result = file.delete();
+        if (!result) {
+            Main.warn(tr(warnMsg, file.getPath()));
+        }
+        return result;
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 9295)
+++ /trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 9296)
@@ -28,4 +28,5 @@
 import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 import org.openstreetmap.josm.tools.MultiMap;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -108,5 +109,5 @@
         } finally {
             if (file.exists()) {
-                file.delete();
+                Utils.deleteFile(file);
             }
         }
