diff --git a/core/modules/file/src/Plugin/migrate/cckfield/ImageField.php b/core/modules/file/src/Plugin/migrate/cckfield/ImageField.php
new file mode 100644
index 0000000..e94f9c2
--- /dev/null
+++ b/core/modules/file/src/Plugin/migrate/cckfield/ImageField.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\file\Plugin\migrate\cckfield\ImageField.
+ */
+
+namespace Drupal\file\Plugin\migrate\cckfield;
+
+use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
+
+/**
+ * @MigrateCckField(
+ *   id = "imagefield"
+ * )
+ */
+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/core/modules/file/src/Plugin/migrate/cckfield/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
similarity index 91%
rename from core/modules/file/src/Plugin/migrate/cckfield/FileField.php
rename to core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
index 022f01e..4e4e456 100644
--- a/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/cckfield/d6/FileField.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\file\Plugin\migrate\cckfield\FileField.
+ * Contains \Drupal\file\Plugin\migrate\cckfield\d6\FileField.
  */
 
-namespace Drupal\file\Plugin\migrate\cckfield;
+namespace Drupal\file\Plugin\migrate\cckfield\d6;
 
 use Drupal\migrate\Entity\MigrationInterface;
 use Drupal\migrate\Row;
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';
+  }
+
+}
