Index: tests/phpunit/tests/term/cache.php
===================================================================
--- tests/phpunit/tests/term/cache.php	(revision 0)
+++ tests/phpunit/tests/term/cache.php	(working copy)
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * @group taxonomy
+ */
+class Tests_Term_Cache extends WP_UnitTestCase {
+	function setUp() {
+		parent::setUp();
+
+		wp_cache_delete( 'last_changed', 'terms' );
+	}
+
+	/**
+	 * @ticket 25711
+	 */
+	function test_category_children_cache() {
+		// Test with only one Parent => Child
+		$term_id1 = $this->factory->category->create();
+		$term_id1_child = $this->factory->category->create( array( 'parent' => $term_id1 ) );
+		$hierarchy = _get_term_hierarchy( 'category' );
+
+		$this->assertEquals( array( $term_id1 => array( $term_id1_child ) ), $hierarchy );
+
+		// Add another Parent => Child
+		$term_id2 = $this->factory->category->create();
+		$term_id2_child = $this->factory->category->create( array( 'parent' => $term_id2 ) );
+		$hierarchy = _get_term_hierarchy( 'category' );
+
+		$this->assertEquals( array( $term_id1 => array( $term_id1_child ), $term_id2 => array( $term_id2_child ) ), $hierarchy );
+
+	}
+}
\ No newline at end of file
Index: src/wp-includes/taxonomy.php
===================================================================
--- src/wp-includes/taxonomy.php	(revision 25913)
+++ src/wp-includes/taxonomy.php	(working copy)
@@ -2741,7 +2741,6 @@
  */
 function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true) {
 	global $wpdb;
-	static $cleaned = array();
 
 	if ( !is_array($ids) )
 		$ids = array($ids);
@@ -2769,9 +2768,6 @@
 	}
 
 	foreach ( $taxonomies as $taxonomy ) {
-		if ( isset($cleaned[$taxonomy]) )
-			continue;
-		$cleaned[$taxonomy] = true;
 
 		if ( $clean_taxonomy ) {
 			wp_cache_delete('all_ids', $taxonomy);
