? modules/taxonomy/translations
Index: modules/taxonomy/taxonomy.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.admin.inc,v
retrieving revision 1.54
diff -u -p -r1.54 taxonomy.admin.inc
--- modules/taxonomy/taxonomy.admin.inc	12 Jun 2009 13:59:56 -0000	1.54
+++ modules/taxonomy/taxonomy.admin.inc	16 Jun 2009 22:57:55 -0000
@@ -222,7 +222,7 @@ function taxonomy_form_vocabulary_valida
     // Do not allow duplicate machine names.
     $vocabularies = taxonomy_get_vocabularies();
     foreach ($vocabularies as $vocabulary) {
-      if ($machine_name == $vocabulary->machine_name && (!(isset($form_state['values']['vid']) && $vocabulary->vid != $form_state['values']['vid']))) {
+      if ($machine_name == $vocabulary->machine_name && (!isset($form_state['values']['vid']) || $vocabulary->vid != $form_state['values']['vid'])) {
         form_set_error('machine_name', t('This machine-readable name is already in use by another vocabulary and must be unique.'));
       }
     }
Index: modules/taxonomy/taxonomy.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.test,v
retrieving revision 1.35
diff -u -p -r1.35 taxonomy.test
--- modules/taxonomy/taxonomy.test	12 Jun 2009 13:59:56 -0000	1.35
+++ modules/taxonomy/taxonomy.test	16 Jun 2009 22:57:55 -0000
@@ -69,9 +69,10 @@ class TaxonomyVocabularyFunctionalTest e
     // Create a new vocabulary.
     $this->clickLink(t('Add vocabulary'));
     $edit = array();
+    $machine_name = drupal_strtolower($this->randomName());
     $edit['name'] = $this->randomName();
     $edit['description'] = $this->randomName();
-    $edit['machine_name'] = drupal_strtolower($this->randomName());
+    $edit['machine_name'] = $machine_name;
     $edit['help'] = $this->randomName();
     $edit['nodes[article]'] = 'article';
     $edit['tags'] = 1;
@@ -86,12 +87,12 @@ class TaxonomyVocabularyFunctionalTest e
     $this->clickLink(t('edit vocabulary'));
     $edit = array();
     $edit['name'] = $this->randomName();
-    $edit['machine_name'] = drupal_strtolower($this->randomName());
     $this->drupalPost(NULL, $edit, t('Save'));
     $this->drupalGet('admin/content/taxonomy');
     $this->assertText($edit['name'], t('Vocabulary found in the vocabulary overview listing.'));
 
     // Try to submit a vocabulary with a duplicate machine name.
+    $edit['machine_name'] = $machine_name;
     $this->drupalPost('admin/content/taxonomy/add', $edit, t('Save'));
     $this->assertText(t('This machine-readable name is already in use by another vocabulary and must be unique.'), t('Duplicate machine name validation was successful'));
 
