How to stop Drupal for setting node changed date on creation?
You should be able to preserve the original changed time by first setting a custom property on the node object, say $node-&gt;modified, in your migration script prior to calling node_save(), and then implementing the node_presave hook:

/**
 * Implements hook_node_presave().
 */
function mymodule_node_presave($node) {
  $node-&gt;changed = $node-&gt;modified;
}


This will work since node_save() sets $node-&gt;changed prior to calling all modules which implement hook_node_presave().