Index: wp-includes/taxonomy.php
===================================================================
--- wp-includes/taxonomy.php	(revision 16868)
+++ wp-includes/taxonomy.php	(working copy)
@@ -2001,7 +2001,8 @@
 
 	$term_id = apply_filters('term_id_filter', $term_id, $tt_id);
 
-	clean_term_cache($term_id, $taxonomy);
+	$force_clean_taxonomy = ( $parent ) ? true : false;
+	clean_term_cache($term_id, $taxonomy, true, $force_clean_taxonomy);
 
 	do_action("created_term", $term_id, $tt_id, $taxonomy);
 	do_action("created_$taxonomy", $term_id, $tt_id);
@@ -2441,7 +2442,7 @@
  * @param string $taxonomy Can be empty and will assume tt_ids, else will use for context.
  * @param bool $clean_taxonomy Whether to clean taxonomy wide caches (true), or just individual term object caches (false). Default is true.
  */
-function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true) {
+function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true, $force_clean_taxonomy = false) {
 	global $wpdb;
 	static $cleaned = array();
 
@@ -2471,7 +2472,7 @@
 	}
 
 	foreach ( $taxonomies as $taxonomy ) {
-		if ( isset($cleaned[$taxonomy]) )
+		if ( isset($cleaned[$taxonomy]) && ! $force_clean_taxonomy )
 			continue;
 		$cleaned[$taxonomy] = true;
 
@@ -2486,7 +2487,7 @@
 		do_action('clean_term_cache', $ids, $taxonomy);
 	}
 
-	wp_cache_set('last_changed', time(), 'terms');
+	wp_cache_set('last_changed', implode( ',', $ids ) . ':' . time(), 'terms');
 }