diff --git a/includes/destinations.file.inc b/includes/destinations.file.inc
index 47fcbaa..30e3bdc 100644
--- a/includes/destinations.file.inc
+++ b/includes/destinations.file.inc
@@ -32,13 +32,17 @@ class backup_migrate_destination_files extends backup_migrate_destination {
   function _save_file($file, $settings) {
     if ($this->confirm_destination() && $dir = $this->get_location()) {
       $filepath = rtrim($dir, "/") ."/". $file->filename();
+
+      // Allow files to be overwritten by the filesystem.
+      $replace_method = $settings->append_timestamp == 1 ? FILE_EXISTS_REPLACE : FILE_EXISTS_RENAME;
+
       // Copy the file if there are multiple destinations.
       if (count($settings->get_destinations()) > 1) {
-        file_unmanaged_copy($file->filepath(), $filepath);
+        file_unmanaged_copy($file->filepath(), $filepath, $replace_method);
       }
       // Otherwise we can move it and save a delete.
       else {
-        file_unmanaged_move($file->filepath(), $filepath);
+        file_unmanaged_move($file->filepath(), $filepath, $replace_method);
       }
 
       // chmod, chown and chgrp the file if needed.
diff --git a/includes/files.inc b/includes/files.inc
index 0de84a1..1c54436 100644
--- a/includes/files.inc
+++ b/includes/files.inc
@@ -154,7 +154,7 @@ function _backup_migrate_construct_filename($settings) {
 
   // Generate a timestamp if needed.
   $timestamp = '';
-  if ($settings->append_timestamp && $settings->timestamp_format) {
+  if ($settings->append_timestamp == 2 && $settings->timestamp_format) {
     $timestamp = format_date(time(), 'custom', $settings->timestamp_format);
   }
 
diff --git a/includes/profiles.inc b/includes/profiles.inc
index d4bdc32..edb965a 100644
--- a/includes/profiles.inc
+++ b/includes/profiles.inc
@@ -126,14 +126,19 @@ function _backup_migrate_ui_backup_settings_form($profile) {
   }
 
   $form['file']['append_timestamp'] = array(
-    "#type" => "checkbox",
-    "#title" => t("Append a timestamp."),
+    "#type" => "radios",
+    '#options' => array(
+      0 => t('Create seperate backups even if `Backup file name` is the same.'),
+      1 => t('Overwrite backup.'),
+      2 => t('Append timestamp.'),
+    ),
+    "#title" => t("Save modes."),
     "#default_value" => $profile->append_timestamp,
   );
   $form['file']['timestamp_format_wrapper'] = array(
     '#type' => 'backup_migrate_dependent',
     '#dependencies' => array(
-      'append_timestamp' => TRUE,
+      'append_timestamp' => 2,
     ),
   );
   $form['file']['timestamp_format_wrapper']['timestamp_format'] = array(
@@ -366,4 +371,3 @@ class backup_migrate_profile extends backup_migrate_item {
     return t('Are you sure you want to delete the profile %name? Any schedules using this profile will be disabled.', array('%name' => $this->get('name')));
   }
 }
-
