diff --git flag.inc flag.inc
index 8199cc2..01d7649 100644
--- flag.inc
+++ flag.inc
@@ -1042,6 +1042,20 @@ class flag_flag {
   }
 
   /**
+   * Revert a flag to settings in database.
+   */
+  function revert() {
+    if ($this->fid && $this->name) {
+      $flags = flag_get_default_flags(TRUE);
+      if (!empty($flags[$this->name])) {
+        $flag = drupal_clone($flags[$this->name]);
+        $flag->fid = $this->fid;
+        $flag->save();
+      }
+    }
+  }
+
+  /**
    * Disable a flag provided by a module.
    */
   function disable() {
diff --git includes/flag.features.inc includes/flag.features.inc
index a126aa9..eea154c 100644
--- includes/flag.features.inc
+++ includes/flag.features.inc
@@ -66,7 +66,7 @@ function flag_features_revert($module = NULL) {
     // Delete flags that are defined in code.
     foreach ($default_flags as $default_flag) {
       $current_flag = flag_get_flag($default_flag['name']);
-      $current_flag->delete();
+      $current_flag->revert();
     }
     _flag_clear_cache();
   }
