diff --git a/core/modules/language/migrations/d6_language_content_menu_settings.yml b/core/modules/language/migrations/d6_language_content_menu_settings.yml
index f7f7c16a50..12145c2d20 100644
--- a/core/modules/language/migrations/d6_language_content_menu_settings.yml
+++ b/core/modules/language/migrations/d6_language_content_menu_settings.yml
@@ -6,7 +6,6 @@ migration_tags:
 source:
   plugin: legacy_extension
   name: i18nmenu
-  type: module
   constants:
     target_type: 'menu_link_content'
     langcode: 'site_default'
diff --git a/core/modules/system/src/Plugin/migrate/source/LegacyExtension.php b/core/modules/system/src/Plugin/migrate/source/LegacyExtension.php
index 707297799f..02c4e5854a 100644
--- a/core/modules/system/src/Plugin/migrate/source/LegacyExtension.php
+++ b/core/modules/system/src/Plugin/migrate/source/LegacyExtension.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\system\Plugin\migrate\source;
 
+use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
 /**
@@ -19,13 +20,10 @@ class LegacyExtension extends DrupalSqlBase {
    */
   public function query() {
     $query = $this->select('system', 's')
-      ->fields('s', ['name', 'type', 'schema_version', 'status']);
+      ->fields('s');
 
-    $configuration_properties = ['name', 'type', 'schema_version'];
-    foreach ($configuration_properties as $property) {
-      if (isset($this->configuration[$property])) {
-        $query->condition($property, $this->configuration[$property]);
-      }
+    if (isset($this->configuration['name'])) {
+      $query->condition('name', (array) $this->configuration['name'], 'IN');
     }
     return $query;
   }
@@ -35,10 +33,16 @@ public function query() {
    */
   public function fields() {
     $fields = [
+      'filename' => $this->t('Filename'),
       'name' => $this->t('Name'),
       'type' => $this->t('Type'),
+      'owner' => $this->t('Owner'),
       'status' => $this->t('Status'),
-      'schema_version' => $this->t('Type'),
+      'throttle' => $this->t('Throttle'),
+      'bootstrap' => $this->t('Bootstrap'),
+      'schema_version' => $this->t('Schema version'),
+      'weight' => $this->t('Weight'),
+      'info' => $this->t('Information array'),
     ];
     return $fields;
   }
@@ -46,9 +50,16 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
+  public function prepareRow(Row $row) {
+    $row->setSourceProperty('info', unserialize($row->getSourceProperty('info')));
+    return parent::prepareRow($row);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function getIds() {
     $ids['name']['type'] = 'string';
-    $ids['type']['type'] = 'string';
     return $ids;
   }
 
diff --git a/core/modules/system/tests/src/Kernel/Plugin/migrate/source/LegacyExtensionTest.php b/core/modules/system/tests/src/Kernel/Plugin/migrate/source/LegacyExtensionTest.php
index 607c0ddfa9..916fde56d1 100644
--- a/core/modules/system/tests/src/Kernel/Plugin/migrate/source/LegacyExtensionTest.php
+++ b/core/modules/system/tests/src/Kernel/Plugin/migrate/source/LegacyExtensionTest.php
@@ -49,12 +49,20 @@ public function providerSource() {
         'info' => 'a:9:{s:4:"name";s:12:"Variable API";s:11:"description";s:12:"Variable API";s:4:"core";s:3:"6.x";s:7:"version";s:14:"6.x-1.0-alpha1";s:7:"project";s:8:"variable";s:9:"datestamp";s:10:"1414059742";s:12:"dependencies";a:0:{}s:10:"dependents";a:0:{}s:3:"php";s:5:"4.3.5";}',
       ],
     ];
+
+    $info = unserialize('a:9:{s:4:"name";s:12:"Variable API";s:11:"description";s:12:"Variable API";s:4:"core";s:3:"6.x";s:7:"version";s:14:"6.x-1.0-alpha1";s:7:"project";s:8:"variable";s:9:"datestamp";s:10:"1414059742";s:12:"dependencies";a:0:{}s:10:"dependents";a:0:{}s:3:"php";s:5:"4.3.5";}');
     $test[0]['expected_results'] = [
       [
+        'filename' => 'sites/all/modules/variable/variable.module ',
         'name' => 'variable',
         'type' => 'module',
+        'owner' => '',
         'status' => '1',
+        'throttle' => '0',
+        'bootstrap' => '0',
         'schema_version' => '-1',
+        'weight' => '0',
+        'info' => $info,
       ],
     ];
 
