--- /Users/loic/Sites/potins.com/modules/taxonomy/taxonomy.module	2008-01-28 00:55:15.000000000 +0700
+++ /Users/loic/Sites/drupal-6.1/modules/taxonomy/taxonomy.module	2008-03-29 03:00:33.000000000 +0700
@@ -304,6 +304,11 @@ function taxonomy_save_term(&$form_value
   );
 
   if (!empty($form_values['tid']) && $form_values['name']) {
+    // twiinz: Check for duplicates.
+    if (db_result(db_query("SELECT COUNT(t.tid) FROM {term_data} t INNER JOIN {term_hierarchy} h ON t.tid = h.tid WHERE t.name = '%s' AND h.parent = '%d' AND t.tid != '%d'", $form_values['name'], $form_values['parent'], $form_values['tid'])) > 0) {
+      return NOT_SAVED_UPDATED;
+    }
+    // /twiinz
     drupal_write_record('term_data', $form_values, 'tid');
     $hook = 'update';
     $status = SAVED_UPDATED;
@@ -312,6 +317,11 @@ function taxonomy_save_term(&$form_value
     return taxonomy_del_term($form_values['tid']);
   }
   else {
+    // twiinz: Check for duplicates.
+    if (db_result(db_query("SELECT COUNT(t.tid) FROM {term_data} t INNER JOIN {term_hierarchy} h ON t.tid = h.tid WHERE t.name = '%s' AND h.parent = '%d'", $form_values['name'], $form_values['parent']) ) > 0) {
+      return NOT_SAVED_NEW;
+    }
+    // /twiinz
     drupal_write_record('term_data', $form_values);
     $hook = 'insert';
     $status = SAVED_NEW;
