diff --git a/modules/paragraphs_demo/config/install/field.field.node.paragraphed_content_demo.field_paragraphs_demo.yml b/modules/paragraphs_demo/config/install/field.field.node.paragraphed_content_demo.field_paragraphs_demo.yml
index f6626ce..7630d1e 100644
--- a/modules/paragraphs_demo/config/install/field.field.node.paragraphed_content_demo.field_paragraphs_demo.yml
+++ b/modules/paragraphs_demo/config/install/field.field.node.paragraphed_content_demo.field_paragraphs_demo.yml
@@ -17,7 +17,7 @@ translatable: false
 default_value: {  }
 default_value_callback: ''
 settings:
-  handler: default
+  handler: default:paragraph
   handler_settings:
     target_bundles:
       image_text: image_text
@@ -26,15 +26,15 @@ settings:
       user: user
     target_bundles_drag_drop:
       image_text:
-        weight: '5'
-        enabled: 0
+        weight: 5
+        enabled: FALSE
       images:
-        weight: '6'
-        enabled: 0
+        weight: 6
+        enabled: FALSE
       text_image:
-        weight: '7'
-        enabled: 0
+        weight: 7
+        enabled: FALSE
       user:
-        weight: '8'
-        enabled: 0
+        weight: 8
+        enabled: FALSE
 field_type: entity_reference_revisions
diff --git a/src/Plugin/Diff/ParagraphsFieldDiffBuilder.php b/src/Plugin/Diff/ParagraphsFieldDiffBuilder.php
new file mode 100644
index 0000000..765d4a3
--- /dev/null
+++ b/src/Plugin/Diff/ParagraphsFieldDiffBuilder.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\paragraphs\Plugin\Diff\ParagraphsFieldDiffBuilder.
+ */
+
+namespace Drupal\paragraphs\Plugin\Diff;
+
+use Drupal\diff\FieldDiffBuilderBase;
+use Drupal\Core\Field\FieldItemInterface;
+use Drupal\Core\Field\FieldItemListInterface;
+
+/**
+ * @FieldDiffBuilder(
+ *   id = "entity_reference_revisions_field_diff_builder",
+ *   label = @Translation("Field Diff for Paragraphs"),
+ *   field_types = {
+ *     "entity_reference_revisions"
+ *   },
+ * )
+ */
+class ParagraphsFieldDiffBuilder extends FieldDiffBuilderBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function build(FieldItemListInterface $field_items) {
+    $result_text = array();
+    $item_counter = 0;
+    /** @var FieldItemInterface $field_items */
+    foreach ($field_items as $field_key => $field_item) {
+      if (!$field_item->isEmpty()) {
+        $parsed_text = $this->entityParser->parseEntity($field_item->entity);
+        if (is_array($parsed_text)) {
+          foreach ($parsed_text as $field_id => $field) {
+            foreach ($field as $id => $text) {
+              $result_text[$item_counter + $id] = $text[0];
+            }
+            $item_counter = $id + 1;
+          }
+        }
+      }
+    }
+    return $result_text;
+  }
+
+}
diff --git a/src/Tests/ParagraphsDiffTest.php b/src/Tests/ParagraphsDiffTest.php
new file mode 100644
index 0000000..7fbf659
--- /dev/null
+++ b/src/Tests/ParagraphsDiffTest.php
@@ -0,0 +1,134 @@
+<?php
+/**
+ * @file
+ * Contains \Drupal\paragraphs\ParagraphsDiffTest.
+ */
+
+namespace Drupal\paragraphs\Tests;
+
+use Drupal\Core\Entity\Entity;
+use Drupal\field_ui\Tests\FieldUiTestTrait;
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests the configuration of paragraphs.
+ *
+ * @group paragraphs
+ *
+ * @dependencies diff
+ */
+class ParagraphsDiffTest extends WebTestBase {
+
+  use FieldUiTestTrait;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array(
+    'node',
+    'paragraphs',
+    'paragraphs_demo',
+    'field',
+    'image',
+    'field_ui',
+    'entity_reference',
+    'block',
+    'diff',
+    'diff_test',
+  );
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    // Create paragraphs and article content types.
+    // Place the breadcrumb, tested in fieldUIAddNewField().
+    $this->drupalPlaceBlock('system_breadcrumb_block');
+    $admin_user = $this->drupalCreateUser(array(
+      'administer site configuration',
+      'administer nodes',
+      'create paragraphed_content_demo content',
+      'edit any paragraphed_content_demo content',
+      'administer content types',
+      'administer node fields',
+      'administer node display',
+      'administer node form display',
+    ));
+    $this->drupalLogin($admin_user);
+  }
+
+  /**
+   * Tests paragraphs difference plugin.
+   */
+  public function testParagraphsDiff() {
+    // Set up diff plugin.
+    $this->drupalGet('admin/config/content/diff/fields');
+    $edit = array(
+      'fields[entity_reference_revisions][plugin][type]' => 'entity_reference_revisions_field_diff_builder',
+    );
+    $this->drupalPostForm(NULL, $edit, t('Save'));
+
+    // Create paragraphed content.
+    $this->drupalGet('node/add/paragraphed_content_demo');
+    $title = $this->randomMachineName();
+    $this->drupalPostForm(NULL, NULL, t('Add Text'));
+    $this->drupalPostForm(NULL, NULL, t('Add Text'));
+    $edit = array(
+      'title[0][value]' => $title,
+      'field_paragraphs_demo[0][subform][field_text_demo][0][value]' => 'Test text 1',
+      'field_paragraphs_demo[1][subform][field_text_demo][0][value]' => 'Test text 2',
+    );
+    $this->drupalPostForm(NULL, $edit, t('Save and publish'));
+
+    $node = $this->drupalGetNodeByTitle($title);
+    $this->drupalGet('node/' . $node->id());
+
+    // Create a second revision, with a comment.
+    $edit = array(
+      'revision' => TRUE,
+      'field_paragraphs_demo[1][subform][field_text_demo][0][value]' => 'New paragraph text',
+      'revision_log[0][value]' => 'Revision 2 comment',
+    );
+    $this->drupalPostForm('node/' . $node->id() . '/edit', $edit, t('Save and keep published'));
+    $this->drupalGet('node/' . $node->id());
+
+    // Check the revisions overview for second revision.
+    $this->clickLink(t('Revisions'));
+    $rows = $this->xpath('//tbody/tr');
+    // Make sure only two revisions available.
+    $this->assertEqual(count($rows), 2);
+
+    // Compare the revisions in standard mode.
+    $this->drupalPostForm(NULL, NULL, t('Compare'));
+
+    // Check, if the second paragraph is changed.
+    $this->assertText('Changes to Paragraphs');
+    $this->assertText('New paragraph text');
+    $this->assertRaw('<span class="diffchange">New paragraph </span>');
+
+    $this->drupalGet('node/' . $node->id());
+
+    $new_revision = array(
+      'revision' => TRUE,
+      'field_paragraphs_demo[1][subform][field_text_demo][0][value]' => 'New paragraph text for testing',
+      'revision_log[0][value]' => 'Revision 3 comment',
+    );
+    $this->drupalPostForm('node/' . $node->id() . '/edit', $new_revision, t('Save and keep published'));
+    $this->drupalGet('node/' . $node->id());
+
+    // Check the revisions overview for third revision.
+    $this->clickLink(t('Revisions'));
+
+    // Compare the revisions in standard mode.
+    $this->drupalPostForm(NULL, NULL, t('Compare'));
+
+    // Check, if the second paragraph is changed.
+    $this->assertText('Changes to Paragraphs');
+    $this->assertText('New paragraph text for testing');
+    $this->assertRaw('<span class="diffchange">for testing</span>');
+  }
+
+}
