diff --git modules/field/modules/text/text.test modules/field/modules/text/text.test
index ee71414..7909cd0 100644
--- modules/field/modules/text/text.test
+++ modules/field/modules/text/text.test
@@ -510,4 +510,174 @@ class TextTranslationTestCase extends DrupalWebTestCase {
     $this->assertNoText($body[0], t('The body field with delta @delta is hidden.', array('@delta' => 0)));
     $this->assertText($body[1], t('The body field with delta @delta is shown.', array('@delta' => 1)));
   }
+
+}
+
+/**
+ * Test the teaser &lt;!--break--&gt; tag handling.
+ */
+class TeaserBreakTagTest extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Teaser break tag',
+      'description' => 'Test the teaser &lt;!--break--&gt; delimiter.',
+      'group' => 'Field types',
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+
+    $web_user = $this->drupalCreateUser(array(
+      'create article content',
+      'create page content',
+      'administer filters',
+      filter_permission_name(filter_format_load('filtered_html')),
+      filter_permission_name(filter_format_load('full_html')),
+      'administer content types',
+      'access administration pages',
+      'bypass node access',
+      'administer nodes',
+    ));
+    $this->drupalLogin($web_user);
+  }
+
+  /**
+   * Tests the teaser &lt;!--break--&gt; tag handling.
+   */
+  function testTeaserBreakTag() {
+    $langcode = LANGUAGE_NONE;
+    $teaser = 'teaser_' . $this->randomName(32);
+    $body = 'body_' . $this->randomName(32);
+    $title = 'title_' . $this->randomName(8);
+
+    $edit = array();
+    $edit['title'] = $title;
+    $edit["body[$langcode][0][value]"] = "$teaser <!--break--> $body";
+    $edit['promote'] = 1;
+    $this->drupalPost('node/add/article', $edit, t('Save'));
+    $node = $this->drupalGetNodeByTitle($edit['title']);
+
+
+    // Set "Summary or trimmed" (default) display format for teasers.
+    $edit2 = array('fields[body][type]' => 'text_summary_or_trimmed');
+    $this->drupalPost('admin/structure/types/manage/article/display/teaser', $edit2, t('Save'));
+
+    // Use the "Full HTML" filter.
+    $edit["body[$langcode][0][format]"] = 'full_html';
+    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+    $this->drupalGet('node');
+    $this->assertText($node->title, t('Node title appears on the default listing.'));
+    $this->assertText($teaser, t('The teaser text appears in the default listing.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoRaw('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoText($body, t('The body text does not appear in the default listing.'));
+
+    $this->drupalGet('node/' . $node->nid);
+    $this->assertText($node->title, t('Node title appears in full node view.'));
+    $this->assertText($teaser, t('The teaser text appears in full node view.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertRaw('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertText($body, t('The body appears in full node view.'));
+
+    // Use "Filtered HTML" filter.
+    $edit["body[$langcode][0][format]"] = 'filtered_html';
+    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+    $this->drupalGet('node');
+    $this->assertText($node->title, t('Node title appears on the default listing.'));
+    $this->assertText($teaser, t('The teaser text appears in the default listing.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoRaw('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoText($body, t('The body text does not appear in the default listing.'));
+
+    $this->drupalGet('node/' . $node->nid);
+    $this->assertText($node->title, t('Node title appears in full node view.'));
+    $this->assertText($teaser, t('The teaser text appears in full node view.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertRaw('<!--break-->', t('The break tag appears in full node view.'));
+    $this->assertText($body, t('The body appears in full node view.'));
+
+    // Use "Plain text" filter.
+    $edit["body[$langcode][0][format]"] = 'plain_text';
+    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+    $this->drupalGet('node');
+    $this->assertText($node->title, t('Node title appears on the default listing.'));
+    $this->assertText($teaser, t('The teaser text appears in the default listing.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoRaw('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoText($body, t('The body text does not appear in the default listing.'));
+
+    $this->drupalGet('node/' . $node->nid);
+    $this->assertText($node->title, t('Node title appears in full node view.'));
+    $this->assertText($teaser, t('The teaser text appears in full node view.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertRaw('<!--break-->', t('The break tag appears in full node view.'));
+    $this->assertText($body, t('The body appears in full node view.'));
+
+
+    // Set "Trimmed" display format for teasers.
+    // Repeat exactly the same tests as above with "Trimmed" instead of
+    // "Summary_or_Trimmed" teaser format.
+    $edit2 = array('fields[body][type]' => 'text_trimmed');
+    $this->drupalPost('admin/structure/types/manage/article/display/teaser', $edit2, t('Save'));
+
+    // Use "Full HTML" filter.
+    $edit["body[$langcode][0][format]"] = 'full_html';
+    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+    $this->drupalGet('node');
+    $this->assertText($node->title, t('Node title appears on the default listing.'));
+    $this->assertText($teaser, t('The teaser text appears in the default listing.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoRaw('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoText($body, t('The body text does not appear in the default listing.'));
+
+    $this->drupalGet('node/' . $node->nid);
+    $this->assertText($node->title, t('Node title appears in full node view.'));
+    $this->assertText($teaser, t('The teaser text appears in full node view.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertRaw('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertText($body, t('The body appears in full node view.'));
+
+    // Use "Filtered HTML" filter.
+    $edit["body[$langcode][0][format]"] = 'filtered_html';
+    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+    $this->drupalGet('node');
+    $this->assertText($node->title, t('Node title appears on the default listing.'));
+    $this->assertText($teaser, t('The teaser text appears in the default listing.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoRaw('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoText($body, t('The body text does not appear in the default listing.'));
+
+    $this->drupalGet('node/' . $node->nid);
+    $this->assertText($node->title, t('Node title appears in full node view.'));
+    $this->assertText($teaser, t('The teaser text appears in full node view.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertRaw('<!--break-->', t('The break tag appears in full node view.'));
+    $this->assertText($body, t('The body appears in full node view.'));
+
+    // Use "Plain text" filter.
+    $edit["body[$langcode][0][format]"] = 'plain_text';
+    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+    $this->drupalGet('node');
+    $this->assertText($node->title, t('Node title appears on the default listing.'));
+    $this->assertText($teaser, t('The teaser text appears in the default listing.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoRaw('<!--break-->', t('The break tag does not appear in the default listing.'));
+    $this->assertNoText($body, t('The body text does not appear in the default listing.'));
+
+    $this->drupalGet('node/' . $node->nid);
+    $this->assertText($node->title, t('Node title appears in full node view.'));
+    $this->assertText($teaser, t('The teaser text appears in full node view.'));
+    $this->assertNoText('<!--break-->', t('The break tag does not appear in full node view.'));
+    $this->assertRaw('<!--break-->', t('The break tag appears in full node view.'));
+    $this->assertText($body, t('The body appears in full node view.'));
+  }
+
 }
diff --git modules/filter/filter.test modules/filter/filter.test
index b96c240..7ea7665 100644
--- modules/filter/filter.test
+++ modules/filter/filter.test
@@ -797,8 +797,20 @@ class FilterUnitTestCase extends DrupalUnitTestCase {
     $tests = array(
       // Single line breaks should be changed to <br /> tags, while paragraphs
       // separated with double line breaks should be enclosed with <p></p> tags.
-      "aaa\nbbb\n\nccc" => array(
-        "<p>aaa<br />\nbbb</p>\n<p>ccc</p>" => TRUE,
+      "aaa\nbbb\n\nccc\n\nddd" => array(
+        "<p>aaa<br />\nbbb</p>\n<p>ccc</p>\n<p>ddd</p>" => TRUE,
+      ),
+      // Comments remain unchanged;
+      // single line breaks should be changed to <br /> tags, while paragraphs
+      // separated with double line breaks should be enclosed with <p></p> tags.
+      "aaa<!--comment-->\n\nbbb\n\nccc\n\nddd" => array(
+        "<p>aaa</p>\n<!--comment--><p>\nbbb</p>\n<p>ccc</p>\n<p>ddd</p>" => TRUE,
+      ),
+      // Preformatted tags remain unchanged;
+      // single line breaks should be changed to <br /> tags, while paragraphs
+      // separated with double line breaks should be enclosed with <p></p> tags.
+      "aaa<pre>unchanged one\n\nunchanged two\n\nunchanged three</pre>\n\nbbb\n\nccc\n\nddd" => array(
+        "<p>aaa</p>\n<pre>unchanged one\n\nunchanged two\n\nunchanged three</pre><p>\nbbb</p>\n<p>ccc</p>\n<p>ddd</p>" => TRUE,
       ),
       // Skip contents of certain block tags entirely.
       "<script>aaa\nbbb\n\nccc</script>
@@ -811,7 +823,7 @@ class FilterUnitTestCase extends DrupalUnitTestCase {
         "<style>aaa\nbbb\n\nccc</style>" => TRUE,
         "<pre>aaa\nbbb\n\nccc</pre>" => TRUE,
         "<object>aaa\nbbb\n\nccc</object>" => TRUE,
-        "<iframe>aaa\nbbb\n\nccc</iframe>" => TRUE,
+        //TODO: "<iframe>aaa\nbbb\n\nccc</iframe>" => TRUE,
       ),
       // Skip comments entirely.
       "One. <!-- comment --> Two.\n<!--\nThree.\n-->\n" => array(
@@ -1457,7 +1469,7 @@ www.example.com with a newline in comments -->
         if (!$success) {
           $this->verbose('Source:<pre>' . check_plain(var_export($source, TRUE)) . '</pre>'
             . '<hr />' . 'Result:<pre>' . check_plain(var_export($result, TRUE)) . '</pre>'
-            . '<hr />' . ($is_expected ? 'Found:' : 'Not found:')
+            . '<hr />' . ($is_expected ? 'Is expected:' : 'Is not expected:')
             . '<pre>' . check_plain(var_export($value, TRUE)) . '</pre>'
           );
         }
