When updating nodes from the content admin page (admin/content/node) such as publishing NAT nodes, the function _nat_update_terms checks $node->taxonomy for an index that matches the NAT vocabulary ID. When saving a node from a form, this array's index is the vocabulary ID. However, when saving a node that hasn't been sent through the node form, $node->taxonomy is indexed by term ID. If the node has a term whose tid is the same as a NAT term's vid, the NAT term will become a child of that wrong term.
IN my case, this happened with the NAT term itself, and the term was made its own parent. This caused all kinds of havoc, as taxonomy module does not check to prevent this from happening.
Comments
Comment #1
Anonymous (not verified) commentedComment #2
Zen commentedhttp://drupal.org/node/188377
The content admin screen uses the node_save operation as in the above issue; hence your bug ...
Thanks,
-K