diff --git a/field_collection.diff.inc b/field_collection.diff.inc
new file mode 100644
index 0000000..dc9de86
--- /dev/null
+++ b/field_collection.diff.inc
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * @file
+ * Integrate Field Collection with Diff module.
+ */
+
+/**
+ * Diff field callback for parsing list field comparative values.
+ */
+function field_collection_field_diff_view($items, $context) {
+  $field = $context['field'];
+  $instance = $context['instance'];
+  $settings = $context['settings'];
+
+  $diff_items = array();
+  foreach ($items as $delta => $item) {
+    if (empty($settings['view_mode'])) {
+      $diff_items[$delta] = $item['value'];
+    }
+    elseif ($field_collection = field_collection_field_get_entity($item)) {
+      $build = $field_collection->view($settings['view_mode']);
+      $diff_items[$delta] = drupal_render($build);
+
+      if (!empty($settings['markdown'])) {
+        $func = $settings['markdown'];
+        if (function_exists($func)) {
+          $diff_items[$delta] = $func($diff_items[$delta]);
+          // Markdown process introduces line endings. Strip trailing
+          // whitespaces as this is only indicative of changes.
+          $diff_items[$delta] = trim($diff_items[$delta], "\n \t");
+        }
+      }
+    }
+  }
+  return $diff_items;
+}
+
+/**
+ * Provide default field comparison options.
+ */
+function field_collection_field_diff_default_options($field_type) {
+  return array(
+    'view_mode' => 'full',
+    'markdown' => 'drupal_html_to_text',
+  );
+}
+
+/**
+ * Provide a form for setting the field comparison options.
+ */
+function field_collection_field_diff_options_form($field_type, $settings) {
+  $options_form = array();
+
+  $entity_type = entity_get_info('field_collection_item');
+  $options = array();
+  foreach ($entity_type['view modes'] as $mode => $info) {
+    $options[$mode] = $info['label'];
+  }
+  $options_form['view_mode'] = array(
+    '#type' => 'select',
+    '#title' => t('Rendering view mode'),
+    '#options' => $options,
+    '#default_value' => $settings['view_mode'],
+    '#description' => t('Select the view mode that should be used when embedding the Field Collection for comparison. ID only is the Field Collection numeric ID.'),
+    '#empty_option' => t('- ID only -'),
+  );
+
+  return $options_form;
+}
