--- flexinode.module	2006-04-26 19:14:15.000000000 -0500
+++ flexinode.module	2006-04-26 19:24:03.000000000 -0500
@@ -622,34 +622,37 @@
 
 /**
  * Implementation of hook_view().
  */
 function flexinode_view(&$node, $teaser = FALSE, $page = FALSE) {
   $node = flexinode_content($node, $teaser);
-  $node->readmore = TRUE;
 }
 
-/**
- * Implementation of hook_content().
- */
 function flexinode_content($node, $teaser = FALSE) {
   if (isset($node->ctype_id)) {
     $ctype = flexinode_load_content_type($node->ctype_id);
 
+    $node->readmore = FALSE;
     $node->body = '<div class="flexinode-body flexinode-'. $node->ctype_id .'">';
     $node->teaser = '<div class="flexinode-body flexinode-'. $node->ctype_id .'">';
 
     foreach ($ctype->fields as $field) {
       $fieldname = 'flexinode_'. $field->field_id;
       if (isset($node->$fieldname)) {
-        $data = flexinode_invoke('format', $field, $node, $teaser);
-        if (!empty($data) && $data) {
-          $node->body .= theme('flexinode_'. $field->field_type, $field->field_id, $field->label, $node->$fieldname, $data);
+        $body_data = flexinode_invoke('format', $field, $node, FALSE);
+        $teaser_data = flexinode_invoke('format', $field, $node, TRUE);
+        if (!empty($body_data) && $body_data) {
+          $node->body .= theme('flexinode_'. $field->field_type, $field->field_id, $field->label, $node->$fieldname, $teaser ? $teaser_data : $body_data);
           if ($field->show_teaser) {
-            $data = node_teaser($data);
-            $node->teaser .= theme('flexinode_'. $field->field_type, $field->field_id, $field->label, $node->$fieldname, $data);
+            if ($body_data != $teaser_data) {
+              $node->readmore = TRUE;
+            }
+            $node->teaser .= theme('flexinode_'. $field->field_type, $field->field_id, $field->label, $node->$fieldname, $teaser_data);
+          }
+          else {
+            $node->readmore = TRUE;
           }
         }
       }
     }
 
     $node->body .= '</div>';
