Index: includes/uuid_vocabulary.features.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uuid_features/includes/uuid_vocabulary.features.inc,v
retrieving revision 1.1
diff -u -r1.1 uuid_vocabulary.features.inc
--- includes/uuid_vocabulary.features.inc	26 Jul 2010 22:16:15 -0000	1.1
+++ includes/uuid_vocabulary.features.inc	29 Sep 2010 07:31:16 -0000
@@ -10,9 +10,9 @@
 function uuid_vocabulary_features_export_options() {
   $options = array();
 
-  $query = 'SELECT v.vid, v.name, u.uuid
+  $query = "SELECT v.vid, v.name, u.uuid
     FROM {vocabulary} v INNER JOIN {uuid_vocabulary} u 
-    ON v.vid = u.vid ORDER BY v.name ASC';
+    ON v.vid = u.vid WHERE v.module REGEXP '^features_' ORDER BY v.name ASC";
   $result = db_query($query);
   while ($vocab = db_fetch_object($result)) {
     $options[$vocab->uuid] = $vocab->name;
@@ -33,6 +33,10 @@
 
   foreach ($data as $uuid) {
     $export['features']['uuid_vocabulary'][$uuid] = $uuid;
+    $module = db_result(db_query("SELECT v.module
+      FROM {vocabulary} v INNER JOIN {uuid_vocabulary} u
+      ON v.vid = u.vid WHERE u.uuid = '%s'", $uuid));
+    $pipe['taxonomy'][] = substr($module, 9);
   }
 
   return $pipe;
@@ -54,17 +58,7 @@
       continue;
     }
 
-    $export = array('uuid' => $uuid);
-
-    // Whitelist of vocabulary properties.
-    $props = array('name', 'description', 'help', 'relations', 'heirarchy', 
-      'multiple', 'required', 'tags', 'module', 'weight', 'nodes');
-    foreach ($props as $key) {
-      if (isset($vocab->$key)) {
-        $export[$key] = $vocab->$key;
-      }
-    }
-
+    $export = array('uuid' => $uuid, 'machine_name' => substr($vocab->module, 9));
     $code[] = '  $vocabularies[] = '. features_var_export($export, '  ') .';';
   }
 
@@ -92,16 +86,10 @@
   $vocabs = module_invoke($module, 'uuid_features_default_vocabularies');
   if (!empty($vocabs)) {
     foreach ($vocabs as $data) {
-      $existing = db_result(db_query('SELECT vid FROM {uuid_vocabulary} WHERE uuid = "%s"', $data['uuid']));
-
-      if (!empty($existing)) {
-        $data['vid'] = $existing;
+      $module = !empty($data['machine_name']) ? 'features_' . $data['machine_name'] : $data['module'];
+      if ($vid = db_result(db_query("SELECT vid FROM {vocabulary} WHERE module = '%s'", $module))) {
+        uuid_set_uuid('vocabulary', 'vid', $vid, $data['uuid']);
       }
-
-      taxonomy_save_vocabulary($data);
-
-      // TODO: remove when http://drupal.org/node/860442 is resolved.
-      uuid_set_uuid('vocabulary', 'vid', $data['vid'], $data['uuid']);
     }
   }
 }
Index: uuid_features.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uuid_features/uuid_features.module,v
retrieving revision 1.1
diff -u -r1.1 uuid_features.module
--- uuid_features.module	26 Jul 2010 22:16:15 -0000	1.1
+++ uuid_features.module	29 Sep 2010 07:31:16 -0000
@@ -14,7 +14,7 @@
       'file' => drupal_get_path('module', 'uuid_features') .'/includes/uuid_node.features.inc',
     ),
     'uuid_vocabulary' => array(
-      'name' => t('Vocabulary'),
+      'name' => t('Vocabulary UUID'),
       'default_hook' => 'uuid_features_default_vocabularies',
       'default_file' => FEATURES_DEFAULTS_INCLUDED,
       'file' => drupal_get_path('module', 'uuid_features') .'/includes/uuid_vocabulary.features.inc',
