Index: revisions_rss.module
===================================================================
--- revisions_rss.module	(revision 307)
+++ revisions_rss.module	(working copy)
@@ -52,16 +52,39 @@
  */
 function revisions_rss_init() {
   // Expose node feed on node view page.
-  if ((arg(0) == 'node') && is_numeric($nid = arg(1)) && is_null(arg(2)) &&
-      ($node = node_load($nid)) && revision_rss_check_type($node) &&
-      user_access(REV_RSS_PERM)) {
+  if ((arg(0) == 'node') && is_numeric($nid = arg(1)) && is_null(arg(2))
+       && user_access(REV_RSS_PERM)) {
+     $node = revisions_rss_node_get_simple_node_property($nid);  
+     if ($node && revision_rss_check_type($node)) {
+        drupal_add_feed(url("node/{$node->nid}/revisions/rss"),
+                    t('Updates to "@title"', array('@title' => $node->title))
+        );
+     }
+  } 
+}
 
-    drupal_add_feed(url("node/{$node->nid}/revisions/rss"),
-                    t('Updates to "@title"', array('@title' => $node->title))
-    );
+/**
+* 
+*/
+function revisions_rss_node_get_simple_node_property($nid, $property=null) {
+  static $nodes = array();
+
+  if (!isset($nodes[$nid])) {
+    // node_load() must not be called from hook_init(). Therefor we have to execute SQL here
+    $nodes[$nid] = db_fetch_object(db_query('SELECT * FROM {node} WHERE nid = %d', $nid));
   }
+
+  if (is_null($property) and !empty($nodes[$nid])) {
+    return $nodes[$nid];
+  } elseif (isset($nodes[$nid][$property])) {
+    return $nodes[$nid][$property];
+  }
+  else {
+    return NULL;
+   }
 }
 
+
 /**
  * Check if RSS should be available for the given node.
  *
