diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal7.php b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
index 78651e4..0108a18 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal7.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
@@ -41536,6 +41536,10 @@
   'value' => 's:6:"bartik";',
 ))
 ->values(array(
+  'name' => 'theme_settings',
+  'value' => 'a:16:{s:11:"toggle_logo";i:0;s:11:"toggle_name";i:1;s:13:"toggle_slogan";i:0;s:24:"toggle_node_user_picture";i:0;s:27:"toggle_comment_user_picture";i:0;s:32:"toggle_comment_user_verification";i:0;s:14:"toggle_favicon";i:0;s:16:"toggle_main_menu";i:0;s:21:"toggle_secondary_menu";i:0;s:12:"default_logo";i:1;s:9:"logo_path";s:23:"public://customlogo.png";s:11:"logo_upload";s:0:"";s:15:"default_favicon";i:0;s:12:"favicon_path";s:24:"public://somefavicon.png";s:14:"favicon_upload";s:0:"";s:16:"favicon_mimetype";s:9:"image/png";}',
+))
+->values(array(
   'name' => 'tracker_batch_size',
   'value' => 'i:999;',
 ))
diff --git a/core/modules/system/migration_templates/d7_global_theme_settings.yml b/core/modules/system/migration_templates/d7_global_theme_settings.yml
new file mode 100644
index 0000000..129f914
--- /dev/null
+++ b/core/modules/system/migration_templates/d7_global_theme_settings.yml
@@ -0,0 +1,28 @@
+id: d7_global_theme_settings
+label: D7 global theme settings
+migration_tags:
+  - Drupal 7
+source:
+  plugin: variable
+  variables:
+    - theme_settings
+process:
+  toggle_logo: theme_settings/toggle_logo
+  toggle_name: theme_settings/toggle_name
+  toggle_slogan: theme_settings/toggle_slogan
+  toggle_node_user_picture: theme_settings/toggle_node_user_picture
+  toggle_comment_user_picture: theme_settings/toggle_comment_user_picture
+  toggle_comment_user_verification: theme_settings/toggle_comment_user_verification
+  toggle_favicon: theme_settings/toggle_favicon
+  default_logo: theme_settings/default_logo
+  logo_path: theme_settings/logo_path
+  logo_upload: theme_settings/logo_upload
+  default_favicon: theme_settings/default_favicon
+  favicon_path: theme_settings/favicon_path
+  favicon_mimetype: theme_settings/favicon_mimetype
+# Ignore settings not present in Drupal 8
+#  theme_settings/favicon_upload
+#  theme_settings/toggle_main_menu
+#  theme_settings/toggle_secondary_menu
+destination:
+  plugin: d7_global_theme_settings
diff --git a/core/modules/system/src/Plugin/migrate/destination/d7/GlobalThemeSettings.php b/core/modules/system/src/Plugin/migrate/destination/d7/GlobalThemeSettings.php
new file mode 100644
index 0000000..2826586
--- /dev/null
+++ b/core/modules/system/src/Plugin/migrate/destination/d7/GlobalThemeSettings.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * @file
+ * Contains  \Drupal\system\Plugin\migrate\destination\d7\GlobalThemeSettings.
+ *
+ * Provides GlobalThemeSettings destination plugin.
+ */
+
+namespace Drupal\system\Plugin\migrate\destination\d7;
+
+use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\Row;
+use Drupal\migrate\Plugin\migrate\destination\DestinationBase;
+
+/**
+ * Persist system data to the config system.
+ *
+ * @MigrateDestination(
+ *   id = "d7_global_theme_settings"
+ * )
+ */
+class GlobalThemeSettings extends DestinationBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function import(Row $row, array $old_destination_id_values = array()) {
+    $config = \Drupal::configFactory()->getEditable('system.theme.global');
+    $values = $row->getDestination();
+    theme_settings_convert_to_config($values, $config)->save();
+    return [$config->getName()];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    $ids['name']['type'] = 'string';
+    return $ids;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields(MigrationInterface $migration = NULL) {
+  }
+
+}
diff --git a/core/modules/system/src/Tests/Migrate/d7/MigrateGlobalThemeSettingsTest.php b/core/modules/system/src/Tests/Migrate/d7/MigrateGlobalThemeSettingsTest.php
new file mode 100644
index 0000000..501b58f
--- /dev/null
+++ b/core/modules/system/src/Tests/Migrate/d7/MigrateGlobalThemeSettingsTest.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\system\Tests\Migrate\d7\MigrateGlobalThemeSettingsTest.
+ */
+
+namespace Drupal\system\Tests\Migrate\d7;
+
+use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
+
+/**
+ * Tests migration of global theme settings variables to configuration.
+ *
+ * @group system
+ */
+class MigrateGlobalThemeSettingsTest extends MigrateDrupal7TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['system'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->executeMigration('d7_global_theme_settings');
+  }
+
+  /**
+   * Tests migration of global theme settings to configuration.
+   */
+  public function testMigrateThemeSettings() {
+    $config = $this->config('system.theme.global');
+
+    $this->assertIdentical('image/png', $config->get('favicon.mimetype'));
+    $this->assertIdentical('public://somefavicon.png', $config->get('favicon.path'));
+    $this->assertFalse($config->get('favicon.use_default'));
+
+    $this->assertFalse($config->get('features.comment_user_picture'));
+    $this->assertFalse($config->get('features.comment_user_verification'));
+    $this->assertFalse($config->get('features.favicon'));
+    $this->assertFalse($config->get('features.node_user_picture'));
+    $this->assertFalse($config->get('features.logo'));
+    $this->assertTrue($config->get('features.name'));
+    $this->assertFalse($config->get('features.slogan'));
+
+    $this->assertIdentical('public://customlogo.png', $config->get('logo.path'));
+    $this->assertTrue($config->get('logo.use_default'));
+  }
+
+}
