Index: dart_taxonomy/dart_taxonomy.module
===================================================================
--- dart_taxonomy/dart_taxonomy.module	(revision 28728)
+++ dart_taxonomy/dart_taxonomy.module	(working copy)
@@ -270,9 +270,11 @@
   $key      = $data['key'];
   $val      = $data['val'];
   $exclude  = $data['exclude'] == 1 ? 1 : 0;
-  $map      = _dart_taxonomy_get_map($tid);
 
-  if (empty($map)) {
+  $map        = _dart_taxonomy_get_map($tid);
+  $empty_map  = empty($key) && empty($val) && empty($exclude);
+
+  if (empty($map) && !$empty_map) {
     // This is a new mapping;
     db_query("INSERT INTO {dart_taxonomy_map} VALUES (%d,'%s', '%s',%d)", $tid, $key, $val, $exclude);
   }
Index: dart_taxonomy/dart_taxonomy.install
===================================================================
--- dart_taxonomy/dart_taxonomy.install	(revision 28728)
+++ dart_taxonomy/dart_taxonomy.install	(working copy)
@@ -61,3 +61,12 @@
 
   return $schema;
 }
+
+/**
+ * Removes empty mappings created in error.
+ */
+function dart_taxonomy_update_6000() {
+  $ret = array();
+  $ret[] = update_sql("DELETE FROM {dart_taxonomy_map} WHERE `key`='' AND `val`='' AND `exclude`=0");
+  return $ret;
+}
\ No newline at end of file
