redirect in hook_init makes body text disappear What is wrong with this code. It makes my body text disappear in all of my nodes.

function MYMODULE_init() {
  if (arg(0) == 'node' &amp;&amp; is_numeric(arg(1)) &amp;&amp; !arg(2)) {
    $node = node_load(arg(1));
    if ($node-&gt;type = 'event') {
      if ($items = field_get_items('node', $node, 'field_event_date')) {
        $date = date_create($items[0]['value']);
        drupal_goto('news/events/day/' . date_format($date, 'Y-m-d'));
      }
    }
  }


I'm using the Calendar module. I don't want to display the full event node, I want to redirect to the Calendar's day display. The redirect works fine. Just when I go to view other nodes there is not body text. I also have Workbench moderation installed. On all of my non-workbench managed nodes I also get a workbench draft tab and errors related to workbench. It is not workbench related as I uninstalled workbench and body text is still not visible.

It seems to be related to node_load, as all is well when I remove that area of code.
Okay, got the answer. hook_init() needs to document what functions are ok/not ok to call 

Documention of hook_init() should mention that it's not allowed to call ... node_load() within this hook. 
The correct way to redirect is as follow:

MODULE_menu_alter(&amp;$items) {
  $items['node/%node']['page callback'] = 'MODULE_node_page_view';
}

MODULE_node_page_view($node) {
  if ($node-&gt;type == MODULE_NODE_TYPE) {
    $referenced_node = MODULE_get_related_node($node);
    drupal_goto('node/'. $referenced_node-&gt;nid);
  }
  else {
    return node_page_view($node);
  }
}