diff --git a/includes/Entity/Workflow.php b/includes/Entity/Workflow.php
index 8146f3b..88a7a94 100644
--- a/includes/Entity/Workflow.php
+++ b/includes/Entity/Workflow.php
@@ -43,9 +43,6 @@ class Workflow extends Entity implements WorkflowInterface {
    *
    * This also handles importing, rebuilding, reverting from Features,
    * as defined in workflow.features.inc.
-   * todo: reverting does not refresh States and transitions, since no
-   * machine_name was present. As of 7.x-2.3, the machine_name exists in
-   * Workflow and WorkflowConfigTransition, so rebuilding is possible.
    *
    * When changing this function, test with the following situations:
    * - maintain Workflow in Admin UI;
@@ -57,86 +54,164 @@ class Workflow extends Entity implements WorkflowInterface {
     // Are we saving a new Workflow?
     $is_new = !empty($this->is_new);
     // Are we rebuilding, reverting a new Workflow? @see workflow.features.inc
-    $is_rebuild = !empty($this->is_rebuild);
-    $is_reverted = !empty($this->is_reverted);
+    $is_rebuild = !empty($this->is_rebuild) || !empty($this->is_reverted);
 
-    // If rebuild by Features, make some conversions.
-    if (!$is_rebuild && !$is_reverted) {
-      // Avoid troubles with features clone/revert/..
-      unset($this->module);
+    if ($is_rebuild) {
+      $this->is_rebuild = TRUE;
+      $this->preRebuild();
     }
-    else {
-      $role_map = isset($this->system_roles) ? $this->system_roles : array();
-      if ($role_map) {
-        // Remap roles. They can come from another system with shifted role IDs.
-        // See also https://drupal.org/node/1702626 .
-        $this->tab_roles = _workflow_rebuild_roles($this->tab_roles, $role_map);
-        foreach ($this->transitions as &$transition) {
-          $transition['roles'] = _workflow_rebuild_roles($transition['roles'], $role_map);
-        }
-      }
 
-      // Insert the type_map when building from Features.
-      if ($this->typeMap) {
-        foreach ($this->typeMap as $node_type) {
-          workflow_insert_workflow_type_map($node_type, $this->wid);
-        }
+    $return = parent::save();
+
+    // On either clone or rebuild from features.
+    if ($is_new || $is_rebuild) {
+      $this->rebuildInternals();
+      if ($is_rebuild) {
+        // The above may have marked us overridden!
+        $this->status = ENTITY_IN_CODE;
+        parent::save();
       }
     }
+
+    // Make sure a Creation state exists.
+    if ($is_new) {
+      $state = $this->getCreationState();
+    }
+
+    workflow_reset_cache($this->wid);
+
+    return $return;
+  }
+
+  /**
+   * Rebuild things that get saved with this entity.
+   */
+  protected function preRebuild() {
+    // Remap roles. They can come from another system with shifted role IDs.
+    // See also https://drupal.org/node/1702626 .
+    $this->rebuildRoles($this->tab_roles);
+
     // After update.php or import feature, label might be empty. @todo: remove in D8.
     if (empty($this->label)) {
       $this->label = $this->name;
     }
+  }
 
-    $return = parent::save();
-
-    // If a workflow is cloned in Admin UI, it contains data from original workflow.
-    // Redetermine the keys.
-    if (($is_new) && $this->states) {
-      foreach ($this->states as $state) {
-        // Can be array when cloning or with features.
-        $state = is_array($state) ? new WorkflowState($state) : $state;
-        // Set up a conversion table, while saving the states.
-        $old_sid = $state->sid;
-        $state->wid = $this->wid;
-        // @todo: setting sid to FALSE should be done by entity_ui_clone_entity().
-        $state->sid = FALSE;
-        $state->save();
-        $sid_conversion[$old_sid] = $state->sid;
+  /**
+   * Rebuild internals that get saved separately.
+   */
+  protected function rebuildInternals() {
+    // Insert the type_map when building from Features.
+    if (isset($this->typeMap)) {
+      foreach ($this->typeMap as $node_type) {
+        workflow_insert_workflow_type_map($node_type, $this->wid);
       }
+    }
 
-      // Reset state cache.
-      $this->getStates(TRUE, TRUE);
-      foreach ($this->transitions as &$transition) {
-        // Can be array when cloning or with features.
-        $transition = is_array($transition) ? new WorkflowConfigTransition($transition, 'WorkflowConfigTransition') : $transition;
-        // Convert the old sids of each transitions before saving.
-        // @todo: is this be done in 'clone $transition'?
-        // (That requires a list of transitions without tid and a wid-less conversion table.)
-        if (isset($sid_conversion[$transition->sid])) {
-          $transition->tid = FALSE;
-          $transition->sid = $sid_conversion[$transition->sid];
-          $transition->target_sid = $sid_conversion[$transition->target_sid];
-          $transition->save();
-        }
+    // Index the existing states and transitions by name.
+    $db_name_map = WorkflowState::getStates($this->wid, TRUE); // sid -> state.
+    $db_states = array(); // name -> state.
+    foreach ($db_name_map as $state) {
+      $db_states[$state->getName()] = $state;
+    }
+    $db_transitions = array();
+    foreach (entity_load('WorkflowConfigTransition') as $transition) {
+      if ($transition->wid == $this->wid) {
+        $start_name = $db_name_map[$transition->sid]->getName();
+        $end_name = $db_name_map[$transition->target_sid]->getName();
+        $name = WorkflowConfigTransition::machineName($start_name, $end_name);
+        $db_transitions[$name] = $transition;
       }
     }
 
-    // Make sure a Creation state exists.
-    if ($is_new) {
-      $state = $this->getCreationState();
+    // Update/create states.
+    $states = isset($this->states) ? $this->states : array();
+    $saved_states = array(); // Saved states: key -> sid.
+    foreach ($states as $key => $data) {
+      $data = (array)$data;
+
+      $name = $data['name'];
+      if (isset($db_states[$name])) {
+        $state = $db_states[$name];
+      }
+      else {
+        $state = $this->createState($name, FALSE);
+      }
+
+      $state->wid = $this->wid;
+      $state->state = $data['state'];
+      $state->weight = $data['weight'];
+      $state->sysid = $data['sysid'];
+      if (!$data['status']) {
+        $this->rebuildStateInactive($state);
+      }
+      $state->status = $data['status'];
+      $state->save();
+
+      unset($db_states[$name]);
+      $saved_states[$key] = $state;
     }
-    // Make sure the default roles are permitted in transitions for better UX.
-    if ($is_new && (count(workflow_load_multiple()) == 1) ) {
-      foreach (user_roles() as $rid => $name) {
-        $perms = array('participate in workflow' => 1);
-        user_role_change_permissions($rid, $perms);  // <=== Enable Roles
+
+    // Update/create transitions.
+    $transitions = isset($this->transitions) ? $this->transitions : array();
+    foreach ($transitions as $name => $data) {
+      $data = (array)$data;
+
+      if (is_numeric($name)) {
+        $start_state = $saved_states[$data['sid']];
+        $end_state = $saved_states[$data['target_sid']];
+        $name = WorkflowConfigTransition::machineName($start_state->getName(),
+          $end_state->getName());
+      }
+      else {
+        $start_state = $saved_states[$data['start_state']];
+        $end_state = $saved_states[$data['end_state']];
+      }
+
+      if (isset($db_transitions[$name])) {
+        $transition = $db_transitions[$name];
       }
+      else {
+        $transition = $this->createTransition($start_state->sid,
+          $end_state->sid);
+      }
+
+      $transition->wid = $this->wid;
+      $transition->sid = $start_state->sid;
+      $transition->target_sid = $end_state->sid;
+      $transition->label = $data['label'];
+      $transition->roles = $data['roles'];
+      $this->rebuildRoles($transition->roles);
+      $transition->save();
+
+      unset($db_transitions[$name]);
     }
 
-    workflow_reset_cache($this->wid);
+    // Any states/transitions left in $db_states/transitions need deletion.
+    foreach ($db_states as $state) {
+      $this->rebuildStateInactive($state);
+      $state->delete();
+    }
+    foreach ($db_transitions as $transition) {
+      $transition->delete();
+    }
 
-    return $return;
+    // Clear the caches, and set $this->states and $this->transitions.
+    $this->states = $this->transitions = NULL;
+    $this->getStates(TRUE, TRUE);
+    $this->getTransitions(FALSE, array(), TRUE);
+  }
+
+  /**
+   * Handle a state becoming inactive during a rebuild.
+   */
+  protected function rebuildStateInactive($state) {
+    if (!$state->isActive()) {
+      return;
+    }
+
+    // TODO: What should we do in this case? Is this safe?
+    $state->deactivate(NULL);
   }
 
   /**
@@ -620,30 +695,27 @@ class Workflow extends Entity implements WorkflowInterface {
     return array('path' => 'admin/config/workflow/workflow/manage/' . $this->wid);
   }
 
-}
-
-function _workflow_rebuild_roles(array $roles, array $role_map) {
-  $cached_roles = &drupal_static(__FUNCTION__, array());
-
-  // See also https://drupal.org/node/1702626 .
-  $new_roles = array();
-  foreach ($roles as $key => $rid) {
-    if ($rid == -1) {
-      $new_roles[$rid] = $rid;
+  protected function rebuildRoles(array &$roles) {
+    $role_map = isset($this->system_roles) ? $this->system_roles : array();
+    if (!$role_map) {
+      return;
     }
-    else {
-      if (!isset($cached_roles[$role_map[$rid]])) {
-        if ($role = user_role_load_by_name($role_map[$rid])) {
-          $cached_roles[$role_map[$rid]] = $role->rid;
-          $new_roles[$role->rid] = $cached_roles[$role_map[$rid]];
-        }
+
+    // See also https://drupal.org/node/1702626 .
+    $new_roles = array();
+    foreach ($roles as $key => $rid) {
+      if ($rid == WORKFLOW_ROLE_AUTHOR_RID) {
+        $new_roles[$rid] = $rid;
       }
       else {
-        $new_roles[$rid] = $cached_roles[$role_map[$rid]];
+        if ($role = user_role_load_by_name($role_map[$rid])) {
+          $new_roles[$role->rid] = (int)($role->rid);
+        }
       }
     }
+    $roles = $new_roles;
   }
-  return $new_roles;
+
 }
 
 /**
diff --git a/includes/Entity/WorkflowConfigTransition.php b/includes/Entity/WorkflowConfigTransition.php
index 5e40e26..08977d8 100644
--- a/includes/Entity/WorkflowConfigTransition.php
+++ b/includes/Entity/WorkflowConfigTransition.php
@@ -110,6 +110,28 @@ class WorkflowConfigTransition extends Entity {
     return TRUE;
   }
 
+  /**
+   * Generate a machine name for a transition.
+   */
+  public static function machineName($start_name, $end_name) {
+    $new_name   = sprintf("%s_to_%s", $start_name, $end_name);
+
+    // Special case: replace parens in creation state transition names.
+    $new_name   = str_replace("(creation)", "_creation", $new_name);
+
+    return $new_name;
+  }
+
+  public function save() {
+    parent::save();
+
+    // Ensure Workflow is marked overridden.
+    $workflow = $this->getWorkflow();
+    if ($workflow->status == ENTITY_IN_CODE) {
+      $workflow->status = ENTITY_OVERRIDDEN;
+      $workflow->save();
+    }
+  }
 }
 
 /**
diff --git a/includes/Entity/WorkflowState.php b/includes/Entity/WorkflowState.php
index be68d77..5de6356 100644
--- a/includes/Entity/WorkflowState.php
+++ b/includes/Entity/WorkflowState.php
@@ -551,6 +551,16 @@ class WorkflowState extends Entity {
     return $this->sid;
   }
 
+  public function save() {
+    parent::save();
+
+    // Ensure Workflow is marked overridden.
+    $workflow = $this->getWorkflow();
+    if ($workflow->status == ENTITY_IN_CODE) {
+      $workflow->status = ENTITY_OVERRIDDEN;
+      $workflow->save();
+    }
+  }
 }
 
 class WorkflowStateController extends EntityAPIController {
diff --git a/workflow.features.inc b/workflow.features.inc
index c1c9feb..7125898 100644
--- a/workflow.features.inc
+++ b/workflow.features.inc
@@ -35,6 +35,7 @@ class WorkflowFeaturesController extends EntityDefaultFeaturesController {
         $export['features']['Workflow'][$workflow_name] = $workflow_name;
       }
     }
+
     return $pipe;
   }
 
@@ -48,31 +49,14 @@ class WorkflowFeaturesController extends EntityDefaultFeaturesController {
     $translatables = $code = array();
     $code[] = '  $workflows = array();';
     $code[] = '';
+
     foreach ($data as $identifier) {
       // Clone workflow to make sure changes are not propagated to original.
       if ($workflow = entity_load_single($this->type, $identifier)) {
-        // Make sure data is not copied to the database.
-        $workflow = clone $workflow;
-        // Modification for the Workflow object:
-        // For mapping workflow_field, add original wid in case target system
-        // already contains workflows.
-        $workflow->wid_original = $workflow->wid;
-        // Add roles to translate role IDs on target system.
-        $permission = NULL;
-        $workflow->system_roles = workflow_get_roles($permission);
-        // >> Now resume with normal flow.
-
-        // Make sure to escape the characters \ and '.
-        // The following method has the advantage, that you can export with
-        // features,
-        // and later import without enabling Features in the target system.
-        $workflow_export = addcslashes(entity_export($this->type, $workflow, '  '), '\\\'');
-        $workflow_identifier = features_var_export($identifier);
-        $code[] = "  // Exported workflow: {$workflow_identifier}";
-        $code[] = "  \$workflows[{$workflow_identifier}] = entity_import('{$this->type}', '" . $workflow_export . "');";
-        $code[] = "";
+        $this->export_render_workflow($workflow, $identifier, $code);
       }
     }
+
     $code[] = '  return $workflows;';
     $code = implode("\n", $code);
 
@@ -82,19 +66,142 @@ class WorkflowFeaturesController extends EntityDefaultFeaturesController {
   }
 
   /**
-   * Overridden to not delete upon revert.
+   * Renders the provided workflow into export code.
+   *
+   * @param Workflow $workflow
+   *   The workflow to export.
+   * @param string $identifier
+   *   The unique machine name for the workflow in the export.
+   * @param array $code
+   *   A reference to the export code array that will receive the output.
+   */
+  protected function export_render_workflow(Workflow $workflow, $identifier, array &$code) {
+    // Make sure data is not copied to the database.
+    $workflow = clone $workflow;
+
+    $this->sanitize_workflow_for_export($workflow);
+
+    // Make sure to escape the characters \ and '.
+    // The following method has the advantage, that you can export with
+    // features,
+    // and later import without enabling Features in the target system.
+    $workflow_export = addcslashes(entity_export($this->type, $workflow, '  '), '\\\'');
+    $workflow_identifier = features_var_export($identifier);
+
+    $code[] = "  // Exported workflow: {$workflow_identifier}";
+    $code[] = "  \$workflows[{$workflow_identifier}] = entity_import('{$this->type}', '" . $workflow_export . "');";
+    $code[] = ''; // Blank line
+  }
+
+  /**
+   * Prepares the provided workflow for export.
+   *
+   * Removes serial IDs and replaces them with machine names.
+   *
+   * @param Workflow $workflow
+   *   The workflow to sanitize. The contents of this object are modified directly.
+   */
+  protected function sanitize_workflow_for_export(Workflow $workflow) {
+    // Eliminate serial IDs in exports to prevent "Overridden" status.
+    // We use machine names instead.
+    unset($workflow->wid);
+
+    // Add roles to translate role IDs on target system.
+    $permission = NULL;
+
+    $workflow->system_roles = workflow_get_roles($permission);
+
+    $sid_to_name_map = $this->pack_states($workflow);
+    $this->pack_transitions($workflow, $sid_to_name_map);
+  }
+
+  /**
+   * "Packs" the states in the provided workflow into an export-friendly format.
+   *
+   * @param Workflow $workflow
+   *   The workflow to pack. The contents of this object are modified directly.
+   *
+   * @return array
+   *   A map of the old state IDs to their new machine names.
+   */
+  protected function pack_states(Workflow $workflow) {
+    $named_states    = array();
+    $sid_to_name_map = array();
+
+    foreach ($workflow->states as $state) {
+      /* @var WorkflowState $state */
+      $name = $state->getName();
+
+      $sid_to_name_map[$state->sid] = $name;
+
+      // Eliminate serial IDs in exports to prevent "Overridden" status.
+      // We use machine names instead.
+      unset($state->sid);
+      unset($state->wid);
+
+      $named_states[$name] = $state;
+    }
+    ksort($named_states);
+
+    // Identify states by machine name.
+    $workflow->states = $named_states;
+
+    return $sid_to_name_map;
+  }
+
+  /**
+   * "Packs" the transitions in the provided workflow into an export-friendly format.
+   *
+   * @param Workflow $workflow
+   *   The workflow to pack. The contents of this object are modified directly.
+   *
+   * @param array $sid_to_name_map
+   *   The map of numeric state IDs to their machine names, for remapping sid
+   *   references.
+   */
+  protected function pack_transitions(Workflow $workflow, array $sid_to_name_map) {
+    $named_transitions = array();
+
+    foreach ($workflow->transitions as $transition) {
+      /* @var WorkflowTransition $transition */
+      $start_name = $sid_to_name_map[$transition->sid];
+      $end_name   = $sid_to_name_map[$transition->target_sid];
+      $new_name = WorkflowConfigTransition::machineName($start_name, $end_name);
+
+      $transition->name        = $new_name;
+      $transition->start_state = $start_name;
+      $transition->end_state   = $end_name;
+
+      // Eliminate serial IDs in exports to prevent "Overridden" status.
+      // We use machine names instead.
+      unset($transition->wid);
+      unset($transition->tid);
+      unset($transition->sid);
+      unset($transition->target_sid);
+
+      $named_transitions[$new_name] = $transition;
+    }
+    ksort($named_transitions);
+
+    // Identify transitions by new machine name.
+    $workflow->transitions = $named_transitions;
+  }
+
+  /**
+   * Revert this workflow, either creating the workflow new (if one with the
+   * same machine name is not present), or updating the existing workflow.
+   *
+   * @param string $module
+   *   The name of the feature module whose components should be reverted.
    */
-  /*
   function revert($module = NULL) {
     // Loads defaults from feature code.
-    $defaults = features_get_default($entity_type, $module);
-    if ($defaults = features_get_default($this->type, $module)) {
-      foreach ($defaults as $name => $entity) {
-        entity_delete($this->type, $name);
-      }
+    $defaults = workflow_get_defaults($module);
+
+    foreach ($defaults as $machine_name => $entity) {
+      workflow_revert($defaults, $machine_name);
     }
   }
-   */
 }
 
 /**
@@ -107,80 +214,33 @@ function workflow_features_pipe_field_base_alter(&$pipe, $data, $export) {
     foreach ($data as $field_name) {
       // $info = field_info_field($field_name);
       $field = _workflow_info_field($field_name);
+
       if ($field['type'] == 'workflow') {
         // $field['settings']['wid'] can be numeric or named.
         $workflow = workflow_load_single($field['settings']['wid']);
-        $pipe['Workflow'][] = $workflow->name;
+
+        // Fields might reference missing workflows.
+        if (!empty($workflow)) {
+          $pipe['Workflow'][] = $workflow->name;
+        }
       }
     }
   }
 }
 
 /**
- * Implements hook_features_rebuild().
- */
-function workflow_features_rebuild($module) {
-  // workflow_features_revert($module);
-  // $entity_type = 'Workflow';
-
-  // Do not delete the previous workflow. It will break the installation due to
-  // the new $wid that is created.
-  // return entity_features_get_controller($entity_type)->revert($module);
-
-  // $info = entity_get_info($entity_type);
-  // if (in_array('EntityAPIControllerInterface', class_implements($info['controller class']))) {
-  //   return entity_get_controller($entity_type)->import($export);
-  // }
-}
-
-/**
- * CRUD style helper functions below.
- */
-
-/**
- * Translates a role string to RIDs for importing.
- *
- * @param string $role_string
- *   A string of roles or fake 'author' role.
+ * Implements hook_features_api_alter().
  *
- * @return array
- *   An array of RIDs.
+ * Ensures Workflow always fires last during rebuild, to ensure that roles
+ * referenced by workflows to be loaded-in when features contain roles.
  */
-function _workflow_roles_to_rids($role_string) {
-  // Get all roles, including 'author'.
-  $permission = NULL;
-  $roles = workflow_get_roles($permission);
-
-  $rid_array = array();
-  foreach (explode(',', $role_string) as $role_name) {
-    if ($role_name === WORKFLOW_FEATURES_AUTHOR_NAME) {
-      $rid_array[WORKFLOW_ROLE_AUTHOR_RID] = WORKFLOW_ROLE_AUTHOR_RID;
-    }
-    elseif ($role_name && in_array($role_name, $roles)) {
-      $rid = array_search($role_name, $roles);
-      $rid_array[$rid] = $rid;
-    }
+function workflow_features_api_alter(array &$components) {
+  // FIXME: Why is Workflow the only features provider with an uppercase component name?
+  $component_name = 'Workflow';
+
+  if (isset($components[$component_name])) {
+    $setting = $components[$component_name];
+    unset($components[$component_name]);
+    $components[$component_name] = $setting;
   }
-  return $rid_array;
-}
-
-/**
- * Translates a string of rids to role names for exporting.
- *
- * @param array $rid_array
- *   An array of rids or fake 'author' role.
- *
- * @return string
- *   A string of role names separated by commas.
- */
-function _workflow_rids_to_roles(array $rid_array) {
-  // Get all roles, including 'author'.
-  $permission = NULL;
-  $roles = workflow_get_roles($permission);
-  // There may be a role named 'author', so make 'author' distinct.
-  $roles[WORKFLOW_ROLE_AUTHOR_RID] = WORKFLOW_FEATURES_AUTHOR_NAME;
-
-  // Translate RIDs to rolenames.
-  $return = implode(',', array_intersect_key($roles, array_flip($rid_array)));
-  return trim($return, ',');
-}
+}
\ No newline at end of file
diff --git a/workflow.module b/workflow.module
index f5121b7..d818c58 100644
--- a/workflow.module
+++ b/workflow.module
@@ -1142,6 +1142,29 @@ function _workflow_info_field($field_name, $workflow = NULL) {
 }
 
 /**
+ * Get features defaults for workflows.
+ */
+function workflow_get_defaults($module) {
+  $funcname = $module . '_default_Workflow';
+  return $funcname();
+}
+
+/**
+ * Revert a single workflow.
+ */
+function workflow_revert($defaults, $name) {
+  $workflow = $defaults[$name];
+  $old = workflow_load_by_name($name);
+  if ($old) {
+    $workflow->wid = $old->wid;
+    $workflow->is_new = FALSE;
+    $workflow->is_reverted = TRUE;
+  }
+
+  $workflow->save();
+}
+
+/**
  * Helper function for D8-port: Get some info on screen.
  * @see workflow_devel module
  *
diff --git a/workflow_admin_ui/includes/Entity/EntityWorkflowUIController.php b/workflow_admin_ui/includes/Entity/EntityWorkflowUIController.php
index 3de5d0d..4034122 100644
--- a/workflow_admin_ui/includes/Entity/EntityWorkflowUIController.php
+++ b/workflow_admin_ui/includes/Entity/EntityWorkflowUIController.php
@@ -153,40 +153,8 @@ class EntityWorkflowUIController extends EntityDefaultUIController {
 
     switch ($op) {
       case 'revert':
-        // Do not delete the workflow, but recreate features_get_default($entity_type, $module);
-        // entity_delete($this->entityType, $id);
-        $workflow = $entity;
-        $entity_type = $this->entityType;
-        $funcname = $workflow->module . '_default_' . $this->entityType;
-        $defaults = $funcname();
-        // No defaults, no processing.
-        if (empty($defaults)) {
-          return;
-        }
-
-        foreach ($defaults as $name => $entity) {
-          $existing[$name] = workflow_load($name);
-          // If we got an existing entity with the same name, we reuse its entity id.
-          if (isset($existing[$name])) {
-            // Set the original as later reference.
-            $entity->original = $existing[$name];
-
-            // As we got an ID, the entity is not new.
-            $entity->wid = $entity->original->wid;
-            unset($entity->is_new);
-
-            // Update the status to be in code.
-            // $entity->status |= ENTITY_IN_CODE;
-            $entity->status = ENTITY_IN_CODE;
-
-            // We mark it for being in revert mode.
-            $entity->is_reverted = TRUE;
-            entity_save($entity_type, $entity);
-            unset($entity->is_reverted);
-          }
-          // The rest of the defaults is handled by default implementation.
-          // @see entity_defaults_rebuild()
-        }
+        $defaults = workflow_get_defaults($entity->module);
+        workflow_revert($defaults, $entity->getName());
         watchdog($this->entityType, 'Reverted %entity %label to the defaults.', $vars, WATCHDOG_NOTICE, $edit_link);
         return t('Reverted %entity %label to the defaults.', $vars);
 
