diff --git a/includes/uuid_users.features.inc b/includes/uuid_users.features.inc
new file mode 100644
index 0000000..0f660de
--- /dev/null
+++ b/includes/uuid_users.features.inc
@@ -0,0 +1,120 @@
+<?php
+/**
+ * @file
+ * Features hooks for the uuid_user features component.
+ */
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function uuid_users_features_export_options() {
+  $options = array();
+
+  $query = 'SELECT users.uid, users.name, u.uuid
+    FROM {users} users INNER JOIN {uuid_users} u 
+    ON users.uid = u.uid ORDER BY users.name ASC';
+  $result = db_query($query);
+  while ($user = db_fetch_object($result)) {
+    if($user->name=='') $user->name='Anonymous'; //todo: use the anonymous variable
+    $options[$user->uuid] = t('user: @name', array(
+      '@name' => $user->name,
+    ));
+  }
+
+  return $options;
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function uuid_users_features_export($data, &$export, $module_name = '') {
+  $pipe = array();
+
+  $export['dependencies']['uuid_features'] = 'uuid_features';
+
+  uuid_features_load_module_includes();
+
+  foreach ($data as $uuid) {
+    $user = user_get_by_uuid($uuid);
+    $export['features']['uuid_users'][$uuid] = $uuid;
+    $pipe['user']['user'] = 'user'; //todo: not sure this is really needed
+
+    // drupal_alter() normally supports just one byref parameter. Using
+    // the __drupal_alter_by_ref key, we can store any additional parameters
+    // that need to be altered, and they'll be split out into additional params
+    // for the hook_*_alter() implementations.  The hook_alter signature is
+    // hook_uuid_users_features_export_alter(&$export, &$pipe, $node)
+    $data = &$export;
+    $data['__drupal_alter_by_ref'] = array(&$pipe);
+    drupal_alter('uuid_users_features_export', $data, $user);
+  }
+  return $pipe;
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function uuid_users_features_export_render($module, $data) {
+  $translatables = $code = array();
+
+  uuid_features_load_module_includes();
+
+  $code[] = '  $users = array();';
+  $code[] = '';
+  foreach ($data as $uuid) {
+    $export = user_get_by_uuid($uuid);
+
+//todo: might want to leave this on for 'reversion mode'
+    // Don't cause conflicts with the legacy uid fields.
+//    unset($export->uid);
+//todo: need to allow admins to determine if password exporting is ok or not
+    unset($export->pass);
+    // The hook_alter signature is:
+    // hook_uuid_users_features_export_render_alter(&$export, $node, $module);
+    unset($export->data);
+    drupal_alter('uuid_users_features_export_render', $export, $export, $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);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function uuid_users_features_revert($module) {
+  uuid_users_features_rebuild($module);
+}
+
+/**
+ * Implementation of hook_features_rebuild().
+ * Rebuilds nodes based on UUID from code defaults.
+ */
+function uuid_users_features_rebuild($module) {
+  $users = module_invoke($module, 'uuid_features_default_users');
+  if (!empty($users)) {
+
+    foreach ($users as $data) {
+      $user = (object)$data;
+      $existing = user_get_by_uuid($user->uuid);
+
+      if (!empty($existing)) {
+        $user->uid = $existing->uid;
+        //TODO: allow admins to determine wether existing password should be preserved
+//        $user->pass = $existing->pass;
+      }
+
+      // The hook_alter signature is:
+      // hook_uuid_users_features_rebuild_alter(&node, $module);
+      drupal_alter('uuid_users_features_rebuild', $user, $module);
+      $data=user_save($user, (array)$user);
+    }
+  }
+}
diff --git a/uuid_features.module b/uuid_features.module
old mode 100644
new mode 100755
index c6d7f91..d3fcf6c
--- a/uuid_features.module
+++ b/uuid_features.module
@@ -24,7 +24,13 @@ function uuid_features_features_api() {
       'default_file' => FEATURES_DEFAULTS_INCLUDED,
       'file' => drupal_get_path('module', 'uuid_features') .'/includes/uuid_term.features.inc',
     ),
-  );
+    'uuid_users' => array(
+      'name' => t('Users'),
+      'default_hook' => 'uuid_features_default_users',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+      'file' => drupal_get_path('module', 'uuid_features') .'/includes/uuid_users.features.inc',
+    ),
+    );
 
   // Depends on http://drupal.org/node/808690
   if (function_exists('uuid_file_insert')) {
