diff --git a/core/modules/file/src/Plugin/migrate/cckfield/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
deleted file mode 100644
index 022f01e..0000000
--- a/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\file\Plugin\migrate\cckfield\FileField.
- */
-
-namespace Drupal\file\Plugin\migrate\cckfield;
-
-use Drupal\migrate\Entity\MigrationInterface;
-use Drupal\migrate\Row;
-use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
-
-/**
- * @MigrateCckField(
- *   id = "filefield"
- * )
- */
-class FileField extends CckFieldPluginBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFieldWidgetMap() {
-    return [
-      'filefield_widget' => 'file_generic',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFieldFormatterMap() {
-    return [
-      'default' => 'file_default',
-      'url_plain' => 'file_url_plain',
-      'path_plain' => 'file_url_plain',
-      'image_plain' => 'image',
-      'image_nodelink' => 'image',
-      'image_imagelink' => 'image',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
-    $process = [
-      'plugin' => 'd6_cck_file',
-      'source' => $field_name,
-    ];
-    $migration->mergeProcessOfProperty($field_name, $process);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFieldType(Row $row) {
-    return $row->getSourceProperty('widget_type') == 'imagefield_widget' ? 'image' : 'file';
-  }
-
-}
diff --git a/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
new file mode 100644
index 0000000..4e4e456
--- /dev/null
+++ b/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\file\Plugin\migrate\cckfield\d6\FileField.
+ */
+
+namespace Drupal\file\Plugin\migrate\cckfield\d6;
+
+use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
+
+/**
+ * @MigrateCckField(
+ *   id = "filefield"
+ * )
+ */
+class FileField extends CckFieldPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldWidgetMap() {
+    return [
+      'filefield_widget' => 'file_generic',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldFormatterMap() {
+    return [
+      'default' => 'file_default',
+      'url_plain' => 'file_url_plain',
+      'path_plain' => 'file_url_plain',
+      'image_plain' => 'image',
+      'image_nodelink' => 'image',
+      'image_imagelink' => 'image',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
+    $process = [
+      'plugin' => 'd6_cck_file',
+      'source' => $field_name,
+    ];
+    $migration->mergeProcessOfProperty($field_name, $process);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldType(Row $row) {
+    return $row->getSourceProperty('widget_type') == 'imagefield_widget' ? 'image' : 'file';
+  }
+
+}
diff --git a/core/modules/file/src/Plugin/migrate/cckfield/d7/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/d7/FileField.php
new file mode 100644
index 0000000..12f27bf
--- /dev/null
+++ b/core/modules/file/src/Plugin/migrate/cckfield/d7/FileField.php
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\file\Plugin\migrate\cckfield\d7\FileField.
+ */
+
+namespace Drupal\file\Plugin\migrate\cckfield\d7;
+
+use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
+
+/**
+ * @MigrateCckField(
+ *   id = "file",
+ * )
+ */
+class FileField extends CckFieldPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldWidgetMap() {
+    return [
+      'filefield_widget' => 'file_generic',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldFormatterMap() {
+    return [
+      'default' => 'file_default',
+      'url_plain' => 'file_url_plain',
+      'path_plain' => 'file_url_plain',
+      'image_plain' => 'image',
+      'image_nodelink' => 'image',
+      'image_imagelink' => 'image',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
+    $process = [
+      'plugin' => 'iterator',
+      'source' => $field_name,
+      'process' => [
+        'target_id' => 'fid',
+        'display' => 'display',
+        'title' => 'title',
+      ],
+    ];
+    $migration->mergeProcessOfProperty($field_name, $process);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldType(Row $row) {
+    return $row->getSourceProperty('widget_type') == 'imagefield_widget' ? 'image' : 'file';
+  }
+
+}
diff --git a/core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.php b/core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.php
new file mode 100644
index 0000000..e818d70
--- /dev/null
+++ b/core/modules/file/src/Plugin/migrate/cckfield/d7/ImageField.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\file\Plugin\migrate\cckfield\d7\ImageField.
+ */
+
+namespace Drupal\file\Plugin\migrate\cckfield\d7;
+
+use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
+
+/**
+ * @MigrateCckField(
+ *   id = "image"
+ * )
+ */
+class ImageField extends CckFieldPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldFormatterMap() {
+    return array();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
+    $process = [
+      'plugin' => 'iterator',
+      'source' => $field_name,
+      'process' => [
+        'target_id' => 'fid',
+        'alt' => 'alt',
+        'title' => 'title',
+        'width' => 'width',
+        'height' => 'height',
+      ],
+    ];
+    $migration->mergeProcessOfProperty($field_name, $process);
+  }
+
+}
diff --git a/migrate_drupal_7_image-2604484-15.patch b/migrate_drupal_7_image-2604484-15.patch
new file mode 100644
index 0000000..4a95dd1
--- /dev/null
+++ b/migrate_drupal_7_image-2604484-15.patch
@@ -0,0 +1,68 @@
+diff --git a/core/modules/file/src/Plugin/migrate/cckfield/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
+deleted file mode 100644
+index 022f01e..0000000
+--- a/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
++++ /dev/null
+@@ -1,62 +0,0 @@
+-<?php
+-
+-/**
+- * @file
+- * Contains \Drupal\file\Plugin\migrate\cckfield\FileField.
+- */
+-
+-namespace Drupal\file\Plugin\migrate\cckfield;
+-
+-use Drupal\migrate\Entity\MigrationInterface;
+-use Drupal\migrate\Row;
+-use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
+-
+-/**
+- * @MigrateCckField(
+- *   id = "filefield"
+- * )
+- */
+-class FileField extends CckFieldPluginBase {
+-
+-  /**
+-   * {@inheritdoc}
+-   */
+-  public function getFieldWidgetMap() {
+-    return [
+-      'filefield_widget' => 'file_generic',
+-    ];
+-  }
+-
+-  /**
+-   * {@inheritdoc}
+-   */
+-  public function getFieldFormatterMap() {
+-    return [
+-      'default' => 'file_default',
+-      'url_plain' => 'file_url_plain',
+-      'path_plain' => 'file_url_plain',
+-      'image_plain' => 'image',
+-      'image_nodelink' => 'image',
+-      'image_imagelink' => 'image',
+-    ];
+-  }
+-
+-  /**
+-   * {@inheritdoc}
+-   */
+-  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
+-    $process = [
+-      'plugin' => 'd6_cck_file',
+-      'source' => $field_name,
+-    ];
+-    $migration->mergeProcessOfProperty($field_name, $process);
+-  }
+-
+-  /**
+-   * {@inheritdoc}
+-   */
+-  public function getFieldType(Row $row) {
+-    return $row->getSourceProperty('widget_type') == 'imagefield_widget' ? 'image' : 'file';
+-  }
+-
+-}
