diff --git a/includes/uuid_user.features.inc b/includes/uuid_user.features.inc
new file mode 100755
index 0000000..3e9576e
--- /dev/null
+++ b/includes/uuid_user.features.inc
@@ -0,0 +1,134 @@
+<?php
+/**
+ * @file
+ * Features hooks for the uuid_user features component.
+ */
+
+/**
+ * Implements hook_features_export_options().
+ */
+function uuid_user_features_export_options() {
+  $options = array();
+
+  $query = 'SELECT u.uid, u.name, u.mail, u.uuid
+    FROM {users} u WHERE uid > 0 ORDER BY u.name ASC';
+  $results = db_query($query);
+  foreach ($results as $user) {
+    $options[$user->uuid] = t('@name: @mail', array(
+      '@name' => $user->name,
+      '@mail' => $user->mail,
+    ));
+  }
+
+  return $options;
+}
+
+/**
+ * Implements hook_features_export().
+ */
+function uuid_user_features_export($data, &$export, $module_name = '') {
+  $pipe = array();
+
+  $export['dependencies']['uuid_features'] = 'uuid_features';
+
+  uuid_features_load_module_includes();
+
+  $uids = entity_get_id_by_uuid('user', $data);
+  foreach ($uids as $uuid => $uid) {
+    // Load the existing user, with a fresh cache.
+    $node = node_load($uid, TRUE);
+
+    $export['features']['uuid_user'][$uuid] = $uuid;
+
+    $data = &$export;
+    drupal_alter('uuid_user_features_export', $data, $user);
+  }
+
+  return $pipe;
+}
+
+/**
+ * Implements hook_features_export_render().
+ */
+function uuid_user_features_export_render($module, $data) {
+  $translatables = $code = array();
+
+  uuid_features_load_module_includes();
+
+  $code[] = '  $users = array();';
+  $code[] = '';
+  $uids = entity_get_id_by_uuid('user', $data);
+  foreach ($uids as $uuid => $uid) {
+    // Only export the user if it exists.
+    if ($uid === FALSE) {
+      continue;
+    }
+    // Attempt to load the user, using a fresh cache.
+    $account = user_load($uid, TRUE);
+    if (empty($account)) {
+      continue;
+    }
+    $export = $account;
+
+    // Use date instead of created, in the same format used by node_object_prepare.
+    $export->date = format_date($export->created, 'custom', 'Y-m-d H:i:s O');
+    $export->pass = user_password(10);
+    unset($export->uid);
+
+    // The hook_alter signature is:
+    // hook_uuid_node_features_export_render_alter(&$export, $user, $module);
+    drupal_alter('uuid_user_features_export_render', $export, $user, $module);
+
+    $code[] = '  $users[] = ' . features_var_export($export) . ';';
+  }
+
+  if (!empty($translatables)) {
+    $code[] = features_translatables_export($translatables, '  ');
+  }
+
+  $code[] = '  return $users;';
+  $code = implode("\n", $code);
+  return array('uuid_features_default_users' => $code);
+}
+
+/**
+ * Implements hook_features_revert().
+ */
+function uuid_user_features_revert($module) {
+  uuid_user_features_rebuild($module);
+}
+
+/**
+ * Implements hook_features_rebuild().
+ * Rebuilds users based on UUID from code defaults.
+ */
+function uuid_user_features_rebuild($module) {
+  $users = module_invoke($module, 'uuid_features_default_users');
+  if (!empty($users)) {
+    module_load_include('inc', 'user', 'user.pages');
+
+    foreach ($users as $data) {
+      $account = (object) $data;
+
+      // Find the matching user by name with a fresh cache
+      $existing = user_load_by_name($account->name);
+      if (isset($existing->uid)) {
+          $account->uid = $existing->uid;
+      }
+      else {
+        $account->uid = NULL;
+      }
+      // The hook_alter signature is:
+      // hook_uuid_user_features_rebuild_alter(&user, $module);
+      drupal_alter('uuid_user_features_rebuild', $account, $module);
+      if($account->uid === NULL) {
+        $account = user_save(NULL, (array) $account);
+      }
+      else {
+        $account = user_save($existing, (array) $account);
+      }
+      // Clear out previously loaded user account if one was found
+      unset($existing);
+    }
+  }
+}
diff --git a/uuid_features.module b/uuid_features.module
index 34c807c..23dea9d 100644
--- a/uuid_features.module
+++ b/uuid_features.module
@@ -6,6 +6,14 @@
 function uuid_features_features_api() {
   $components = array();
 
+  $components['uuid_user'] = array(
+    'name' => t('Users'),
+    'feature_source' => TRUE,
+    'default_hook' => 'uuid_features_default_users',
+    'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    'file' => drupal_get_path('module', 'uuid_features') . '/includes/uuid_user.features.inc',
+  );
+
   $components['uuid_node'] = array(
     'name' => t('Content'),
     'feature_source' => TRUE,
