diff --git a/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java b/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
index 260c35e..d127f45 100644
--- a/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
+++ b/src/org/openstreetmap/josm/data/cache/JCSCacheManager.java
@@ -240,8 +240,8 @@ public final class JCSCacheManager {
     }
 
     private static void deleteCacheFiles(String basePathPart) {
-        Utils.deleteFile(new File(basePathPart + ".key"));
-        Utils.deleteFile(new File(basePathPart + ".data"));
+        Utils.deleteFileIfExists(new File(basePathPart + ".key"));
+        Utils.deleteFileIfExists(new File(basePathPart + ".data"));
     }
 
     private static CompositeCacheAttributes getCacheAttributes(int maxMemoryElements) {
diff --git a/src/org/openstreetmap/josm/tools/Utils.java b/src/org/openstreetmap/josm/tools/Utils.java
index bc151aa..6c194d1 100644
--- a/src/org/openstreetmap/josm/tools/Utils.java
+++ b/src/org/openstreetmap/josm/tools/Utils.java
@@ -491,6 +491,20 @@ public final class Utils {
     }
 
     /**
+     * Deletes a file and log a default warning if the file exists but the deletion fails.
+     * @param file file to delete
+     * @return {@code true} if and only if the file does not exist or is successfully deleted; {@code false} otherwise
+     * @since xxx
+     */
+    public static boolean deleteFileIfExists(File file) {
+        if (file.exists()) {
+            return deleteFile(file);
+        } else {
+            return true;
+        }
+    }
+
+    /**
      * Deletes a file and log a default warning if the deletion fails.
      * @param file file to delete
      * @return {@code true} if and only if the file is successfully deleted; {@code false} otherwise
