When a node with content_taxonomy fields is reverted to a previous revision, sometimes _content_taxonomy_taxonomy_unset function remove other taxonomy terms.

function node_revision_revert_confirm_submit($form, &$form_state) {
  ...
  if (module_exists('taxonomy')) {
    $node_revision->taxonomy = array_keys($node_revision->taxonomy);
  }
  ...

node.module recreate the $node->taxonomy array with array_keys. The function _content_taxonomy_taxonomy_unset has a little bug when $node->taxonomy is array of 'tids'.

The patch for the fix is attached.

CommentFileSizeAuthor
content_taxonomy-taxonomy_unset.patch471 bytessmartinm