I use ahah_helper on the node form witch has few taxonomies (including free tags). When ahah elements refreshes in the log I receive 4 same errors with different line number on the taxonomy.module:

Illegal offset type in modules/taxonomy/taxonomy.module on line 606

Investigating noticed thet this happens after this code:

// hack to stop taxonomy from resetting when the form is rebuilt
$form_state['node']['taxonomy'] = taxonomy_preview_terms($node);

Looks taxonomy_preview_terms() func is calling later by taxonomy module also. Cccurs php error because with term object works as with single value. Taxonomy module has condition to eliminate this:

if (!is_object(current($node->taxonomy))) {
  $node->taxonomy = taxonomy_preview_terms($node);
}

but it fails because in my case first element is 'tags' array.

For fix this I move 'tags' element into the end of taxonomy array. So changed existing code to:

// hack to stop taxonomy from resetting when the form is rebuilt
$form_state['node']['taxonomy'] = taxonomy_preview_terms($node);
if($tags = $form_state['node']['taxonomy']['tags']){
  unset($form_state['node']['taxonomy']['tags']);
  $form_state['node']['taxonomy']['tags'] = $tags;
}

Also tested removing this peace of code - no issues received and looks taxonomy stored properly. Perhaps it can be removed?