--- wp-admin/includes/schema.php.ori	2009-12-16 19:49:09.906250000 +0100
+++ wp-admin/includes/schema.php	2009-12-16 20:35:44.359375000 +0100
@@ -52,6 +52,15 @@
  PRIMARY KEY  (object_id,term_taxonomy_id),
  KEY term_taxonomy_id (term_taxonomy_id)
 ) $charset_collate;
+CREATE TABLE $wpdb->taxonomymeta (
+  meta_id bigint(20) unsigned NOT NULL auto_increment,
+  taxonomy_id bigint(20) unsigned NOT NULL default '0',
+  meta_key varchar(255) default NULL,
+  meta_value longtext,
+  PRIMARY KEY  (meta_id),
+  KEY taxonomy_id (taxonomy_id),
+  KEY meta_key (meta_key)
+) $charset_collate;
 CREATE TABLE $wpdb->commentmeta (
   meta_id bigint(20) unsigned NOT NULL auto_increment,
   comment_id bigint(20) unsigned NOT NULL default '0',
--- wp-includes/taxonomy.php.ori	2009-12-16 19:49:56.468750000 +0100
+++ wp-includes/taxonomy.php	2009-12-16 21:15:05.859375000 +0100
@@ -1999,6 +1999,87 @@
 }
 
 //
+// Taxonomy meta functions
+//
+
+/**
+ * Add meta data field to a term.
+ *
+ * @since 3.0
+ * @uses add_metadata
+ * @link http://codex.wordpress.org/Function_Reference/add_term_meta
+ *
+ * @param int $term_id Post ID.
+ * @param string $key Metadata name.
+ * @param mixed $value Metadata value.
+ * @param bool $unique Optional, default is false. Whether the same key should not be added.
+ * @return bool False for failure. True for success.
+ */
+function add_term_meta($term_id, $meta_key, $meta_value, $unique = false) {
+	return add_metadata('taxonomy', $term_id, $meta_key, $meta_value, $unique);
+}
+
+/**
+ * Remove metadata matching criteria from a term.
+ *
+ * You can match based on the key, or key and value. Removing based on key and
+ * value, will keep from removing duplicate metadata with the same key. It also
+ * allows removing all metadata matching key, if needed.
+ *
+ * @since 3.0
+ * @uses delete_metadata
+ * @link http://codex.wordpress.org/Function_Reference/delete_term_meta
+ *
+ * @param int $term_id term ID
+ * @param string $meta_key Metadata name.
+ * @param mixed $meta_value Optional. Metadata value.
+ * @return bool False for failure. True for success.
+ */
+function delete_term_meta($term_id, $meta_key, $meta_value = '') {
+	return delete_metadata('taxonomy', $term_id, $meta_key, $meta_value);
+}
+
+/**
+ * Retrieve term meta field for a term.
+ *
+ * @since 3.0
+ * @uses get_metadata
+ * @link http://codex.wordpress.org/Function_Reference/get_term_meta
+ *
+ * @param int $term_id Term ID.
+ * @param string $key The meta key to retrieve.
+ * @param bool $single Whether to return a single value.
+ * @return mixed Will be an array if $single is false. Will be value of meta data field if $single
+ *  is true.
+ */
+function get_term_meta($term_id, $key, $single = false) {
+	return get_metadata('taxonomy', $term_id, $key, $single);
+}
+
+/**
+ * Update term meta field based on term ID.
+ *
+ * Use the $prev_value parameter to differentiate between meta fields with the
+ * same key and comment ID.
+ *
+ * If the meta field for the term does not exist, it will be added.
+ *
+ * @since 3.0
+ * @uses update_metadata
+ * @link http://codex.wordpress.org/Function_Reference/update_term_meta
+ *
+ * @param int $term_id Term ID.
+ * @param string $key Metadata key.
+ * @param mixed $value Metadata value.
+ * @param mixed $prev_value Optional. Previous value to check before removing.
+ * @return bool False on failure, true if success.
+ */
+function update_term_meta($term_id, $meta_key, $meta_value, $prev_value = '') {
+	return update_metadata('taxonomy', $term_id, $meta_key, $meta_value, $prev_value);
+}
+
+
+//
 // Private
 //
 
--- wp-includes/wp-db.php.ori	2009-12-16 19:49:22.953125000 +0100
+++ wp-includes/wp-db.php	2009-12-16 21:03:04.234375000 +0100
@@ -218,6 +218,15 @@
 	var $commentmeta;
 
 	/**
+	 * WordPress Taxonomy Metadata table
+	 *
+	 * @since 3.0
+	 * @access public
+	 * @var string
+	 */
+	var $taxonomymeta;
+
+	/**
 	 * WordPress User Metadata table
 	 *
 	 * @since 2.3.0
@@ -261,7 +270,7 @@
 	 * @var array
 	 */
 	var $tables = array('users', 'usermeta', 'posts', 'categories', 'post2cat', 'comments', 'links', 'link2cat', 'options',
-			'postmeta', 'terms', 'term_taxonomy', 'term_relationships', 'commentmeta');
+			'postmeta', 'terms', 'term_taxonomy', 'term_relationships', 'commentmeta', 'taxonomymeta');
 
 	/**
 	 * List of deprecated WordPress tables
