Index: excerpt.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/excerpt/excerpt.module,v
retrieving revision 1.6.4.2
diff -u -p -r1.6.4.2 excerpt.module
--- excerpt.module	19 Mar 2008 01:47:07 -0000	1.6.4.2
+++ excerpt.module	20 Mar 2008 01:59:51 -0000
@@ -16,13 +16,22 @@ function excerpt_nodeapi(&$node, $op, $a
         }
         break;
 
-      case 'view':
+      case 'load':
+        // Support for nodes saved with earlier versions of excerpt. The teaser
+        // will now be created when submitting the node form to take some load
+        // from the server.
+        if (trim($node->teaser) == '' && $node->body != '') {
+          $node->teaser = node_teaser($node->body, isset($node->format) ? $node->format : NULL);
+        }
         // node.module just checks whether the length of the teaser is less
         // than the body length to decide whether a "read more" link is to be
         // shown. With excerpts however, teasers can be even longer than the
         // body field, which is why we need to overwrite that property with our
         // own condition.
-        $node->readmore = ($node->teaser != $node->body);
+        return array('excerpt' => (bool)strcmp($node->teaser, $node->body));
+
+      case 'view':
+        $node->readmore = $node->excerpt;
         break;
     }
   }
