weird features behavior - constantly adding and removing entries from taxonomy.inc I'm using features and I commit the features module to my repository to track changes.

Every now and then (after drush fu foobar) I see the following change to the foobar.features.taxonomy.inc file:

@@ -16,8 +16,6 @@
       'hierarchy' =&gt; '0',
       'module' =&gt; 'taxonomy',
       'weight' =&gt; '0',
-      'language' =&gt; 'und',
-      'i18n_mode' =&gt; '1',
       'metatags' =&gt; array(),
       'rdf_mapping' =&gt; array(
         'rdftype' =&gt; array(
@@ -42,8 +40,6 @@
       'hierarchy' =&gt; '0',
       'module' =&gt; 'taxonomy',
       'weight' =&gt; '0',
-      'language' =&gt; 'und',
-      'i18n_mode' =&gt; '1',
       'metatags' =&gt; array(),
       'rdf_mapping' =&gt; array(
         'rdftype' =&gt; array(
...


Note the removals in the above diff starting with -. That takes place at the same time for all of my 15 taxonomy vocabularies.

After some development and in the next drush fu foobar those exact lines are added back.

In the meantime of that cycle:


I haven't touched anything on those taxonomies
I haven't updated features (I use the latest)


Any idea why this is happening?

Edit: More info
After the offending lines are added in the foobar.features.taxonomy.inc file if I do a drush cc all then I get the following output in the console:

Reset language for all terms.

Reset language for all terms.

[...]

Reset language for all terms.


That is 15 times if I have 15 taxonomy vocabularies.
Taxonomy Edge optimizes tree functions for taxonomies. It provides a transitive closure table data model for easily managing hierarchical terms. It was created to avoid recursive functions when fetching all children, and to avoid the not-quite-so-scalable memory footprint of taxonomy_get_tree().

The provided patch contains overrides for the core module Taxonomy in regards to taxonomy_get_tree() and taxonomy_select_nodes().