--- excerpt.module.orig	2008-03-18 20:11:23.537462200 +0100
+++ excerpt.module	2008-03-18 20:08:00.912976700 +0100
@@ -1,30 +1,22 @@
 <?php
 // $Id: excerpt.module,v 1.9 2008/01/02 05:15:36 hayesr Exp $
 
-function excerpt_help($section) {
-  switch ($section) {
-    case 'admin/node/configure/defaults':
-      return t('<p>If you want users to be able to enter separate excerpts for nodes, check the <em>excerpt</em> box in the appropriate column.</p>');
+function excerpt_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
+  if (variable_get('excerpt_'. $node->type, 1)) {
+    switch ($op) {
+      case 'submit':
+        if (trim($node->teaser) == '') {
+          $node->teaser = isset($node->body) ? node_teaser($node->body, isset($node->format) ? $node->format : NULL) : '';
+        }
+        break;
+      case 'view':
+        $node->readmore = ($node->teaser != $node->body);
+        break;
+     }
   }
 }
 
- function excerpt_nodeapi(&$node, $op, $teaser) {
-   switch ($op) {
-    case 'validate':
-    case 'load':
-      if (trim($node->teaser) == '') {
-        $node->teaser = node_teaser($node->body);
-      }
-    case 'load':
-      if ($node->teaser == '') {
-        $node->teaser = node_teaser($node->body);
-      }
-      break;
-      break;
-   }
- }
-
- function excerpt_form_alter($form_id, &$form) {
+function excerpt_form_alter($form_id, &$form) {
   if ($form_id == 'node_type_form' && isset($form['identity']['type'])) {
     $form['workflow']['excerpt'] = array(
       '#type' => 'fieldset',
