I put a message output statement in hook_nodeapi and found the nodeapi is called twice when saving a node.

<?php
function MYMODULE_nodeapi(&$node, $op, $a3=NULL, $a4=NULL){
  if ($op == 'update'){
    drupal_set_message("inside update");
  }
}
?>

When saving an existing node(updating it), the results is:
inside update
inside update

Why is hook_nodeapi called twice instead of one time?
Any ideas?