diff --git a/src/Plugin/diff/EntityReferenceRevisionsFIeldBuilder.php b/src/Plugin/diff/EntityReferenceRevisionsFIeldBuilder.php
new file mode 100644
index 0000000..d17778a
--- /dev/null
+++ b/src/Plugin/diff/EntityReferenceRevisionsFIeldBuilder.php
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\paragraphs\Plugin\Diff\EntityReferenceRevisionsFieldBuilder
+ */
+
+namespace Drupal\paragraphs\Plugin\Diff;
+
+use Drupal\diff\FieldDiffBuilderBase;
+use Drupal\Core\Field\FieldItemListInterface;
+
+/**
+ * @FieldDiffBuilder(
+ *   id = "entity_reference_revisions_field_diff_builder",
+ *   label = @Translation("Entity Reference Revisions Field Diff"),
+ *   field_types = {
+ *     "entity_reference_revisions"
+ *   },
+ * )
+ */
+class EntityReferenceRevisionsFieldBuilder extends FieldDiffBuilderBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function build(FieldItemListInterface $field_items) {
+    $result_text = array();
+    $item_counter = 0;
+    // Every item from $field_items is of type FieldItemInterface.
+    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/ParagraphsAdministrationTest.php b/src/Tests/ParagraphsAdministrationTest.php
index 2fb9e34..6a6526b 100644
--- a/src/Tests/ParagraphsAdministrationTest.php
+++ b/src/Tests/ParagraphsAdministrationTest.php
@@ -33,6 +33,8 @@ class ParagraphsAdministrationTest extends WebTestBase {
     'field_ui',
     'entity_reference',
     'block',
+    'diff',
+    'diff_test',
   );
 
   /**
@@ -45,12 +47,6 @@ class ParagraphsAdministrationTest extends WebTestBase {
     $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article'));
     // Place the breadcrumb, tested in fieldUIAddNewField().
     $this->drupalPlaceBlock('system_breadcrumb_block');
-  }
-
-  /**
-   * Tests the paragraph creation.
-   */
-  public function testParagraphsCreation() {
     $admin_user = $this->drupalCreateUser(array(
       'administer site configuration',
       'administer nodes',
@@ -65,9 +61,16 @@ class ParagraphsAdministrationTest extends WebTestBase {
       'administer paragraph form display',
       'administer node form display',
       'edit any article content',
-      'delete any article content'
+      'delete any article content',
+      'view article revisions',
     ));
     $this->drupalLogin($admin_user);
+  }
+
+  /**
+   * Tests the paragraph creation.
+   */
+  public function testParagraphsCreation() {
 
     $this->drupalGet('admin/structure/paragraphs_type');
     $this->clickLink(t('Add a Paragraphs type'));
@@ -208,6 +211,6 @@ class ParagraphsAdministrationTest extends WebTestBase {
 //    // Make sure two paragraph entities have been deleted.
 //    $current_paragraphs = Paragraph::loadMultiple();
 //    $this->assertTrue(empty($current_paragraphs));
-  }
 
+  }
 }
diff --git a/src/Tests/ParagraphsDiffTest.php b/src/Tests/ParagraphsDiffTest.php
new file mode 100644
index 0000000..e2a7723
--- /dev/null
+++ b/src/Tests/ParagraphsDiffTest.php
@@ -0,0 +1,175 @@
+<?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',
+    'field',
+    'image',
+    'field_ui',
+    'entity_reference',
+    'block',
+    'diff',
+    'diff_test',
+  );
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    // Create paragraphs and article content types.
+    $this->drupalCreateContentType(array('type' => 'paragraphs', 'name' => 'Paragraphs'));
+    $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article'));
+    // Place the breadcrumb, tested in fieldUIAddNewField().
+    $this->drupalPlaceBlock('system_breadcrumb_block');
+    $admin_user = $this->drupalCreateUser(array(
+      'administer site configuration',
+      'administer nodes',
+      'create article content',
+      'create paragraphs content',
+      'administer content types',
+      'administer node fields',
+      'administer node display',
+      'administer paragraphs types',
+      'administer paragraph fields',
+      'administer paragraph display',
+      'administer paragraph form display',
+      'administer node form display',
+      'edit any article content',
+      'view article revisions',
+      'delete any article content',
+    ));
+    $this->drupalLogin($admin_user);
+  }
+
+  /**
+   * Tests paragraphs difference plugin.
+   */
+  public function testParagraphsDiff() {
+
+    $this->drupalGet('admin/structure/paragraphs_type');
+    $this->clickLink(t('Add a Paragraphs type'));
+
+    $edit = array(
+      'label' => 'Text only',
+      'id' => 'text'
+    );
+    $this->drupalPostForm(NULL, $edit, t('Save'));
+    // Create field types for text and image.
+    static::fieldUIAddNewField('admin/structure/paragraphs_type/text', 'text_only', 'Text only', 'text_long', array(), array());
+    $this->assertText('Saved Text only configuration.');
+
+    // Create an article with paragraphs field.
+    static::fieldUIAddNewField('admin/structure/types/manage/article', 'paragraphs', 'Paragraphs', 'entity_reference_revisions', array(
+      'settings[target_type]' => 'paragraph',
+      'cardinality' => '-1'
+    ), array(
+      'settings[handler_settings][target_bundles][text]' => TRUE,
+    ));
+    // Configure article fields.
+    $this->drupalGet('admin/structure/types/manage/article/fields');
+    $this->clickLink(t('Edit'), 1);
+    $this->drupalPostForm(NULL, NULL, t('Save settings'));
+    $this->clickLink(t('Manage display'));
+    $this->drupalPostForm(NULL, array('fields[field_paragraphs][type]' => 'entity_reference_revisions_entity_view'), t('Save'));
+    $this->clickLink(t('Manage form display'));
+    $this->drupalPostForm(NULL, array('fields[field_paragraphs][type]' => 'entity_reference_paragraphs'), t('Save'));
+
+    $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'));
+
+    $this->drupalGet('node/add/article');
+
+    $title = $this->randomMachineName();
+
+    $this->drupalPostForm(NULL, NULL, t('Add Text only'));
+    $this->drupalPostForm(NULL, NULL, t('Add Text only'));
+
+    $edit = array(
+      'title[0][value]' => $title,
+      'field_paragraphs[0][subform][field_text_only][0][value]' => 'Test text 1',
+      'field_paragraphs[1][subform][field_text_only][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(
+      'body[0][value]' => '<p>Revision 2</p>',
+      'revision' => TRUE,
+      'field_paragraphs[1][subform][field_text_only][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(
+      'body[0][value]' => '<p>Revision 3</p>',
+      'revision' => TRUE,
+      'field_paragraphs[1][subform][field_text_only][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>');
+  }
+
+}
