Index: modules/core/node.inc
===================================================================
--- modules/core/node.inc	(revision 347)
+++ modules/core/node.inc	(working copy)
@@ -111,6 +111,7 @@
   if ($type_info->has_body) {
     $fields['body'] = t('Node: ').$type_info->body_label;
     $fields['teaser'] = t('Node: Teaser');
+    $fields['teaser_include'] = t('Node: Show summary in full view');
   }
 
   if (module_exists('path') && (user_access('create url aliases') || user_access('administer url aliases'))) {
@@ -249,17 +250,25 @@
     // If incoming data has a teaser and no body, copy the teaser into the body
     if (isset($node->teaser)) {
       $node->teaser = trim($node->teaser);
-    } else {
+    }
+    else {
       $node->teaser = '';
     }
     if (isset($node->body)) {
       $node->body = trim($node->body);
-    } else {
+    }
+    else {
       $node->body = '';
     }
-    if ($node->teaser && !$node->body) {
+    // If a teaser and body, and 'show summary in full view' disabled, add in
+    // <!--break--> delimiter.
+    if ($node->teaser && $node->body && !$node->teaser_include) {
+      $node->body = "\n<!--break-->\n" . $node->body;
+    }
+    elseif ($node->teaser && !$node->body) {
       $node->body = $node->teaser;
-    } elseif ($node->body && !$node->teaser) {
+    }
+    elseif ($node->body && !$node->teaser) {
       // Teaser not automatically generated
       $node->teaser = node_teaser($node->body);
     }
