diff --git a/config/migrate.migration.d6_system_image.yml b/config/migrate.migration.d6_system_image.yml
new file mode 100644
index 0000000..193b5d2
--- /dev/null
+++ b/config/migrate.migration.d6_system_image.yml
@@ -0,0 +1,10 @@
+id: d6_system_image
+source:
+    plugin: drupal6_variable
+    variables:
+        - image_toolkit
+process:
+    toolkit: image_toolkit
+destination:
+    plugin: d8_config
+    config_name: system.image
diff --git a/config/migrate.migration.d6_system_image_gd.yml b/config/migrate.migration.d6_system_image_gd.yml
new file mode 100644
index 0000000..3c02eeb
--- /dev/null
+++ b/config/migrate.migration.d6_system_image_gd.yml
@@ -0,0 +1,10 @@
+id: d6_system_image_gd
+source:
+    plugin: drupal6_variable
+    variables:
+        - image_jpeg_quality
+process:
+    jpeg_quality: image_jpeg_quality
+destination:
+    plugin: d8_config
+    config_name: system.image.gd
diff --git a/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImage.php b/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImage.php
new file mode 100644
index 0000000..78cfcb7
--- /dev/null
+++ b/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImage.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate\Tests\Drupal6SystemImage.
+ */
+
+namespace Drupal\migrate\Tests\Dump;
+
+use Drupal\Core\Database\Connection;
+
+/**
+ * Database dump for testing system.image.yml migration.
+ */
+class Drupal6SystemImage {
+
+  /**
+   * Sample database schema and values.
+   *
+   * @param \Drupal\Core\Database\Connection $database
+   *   The database connection.
+   */
+  public static function load(Connection $database) {
+    $database->schema()->createTable('variable', array(
+      'fields' => array(
+        'name' => array(
+          'type' => 'varchar',
+          'length' => 128,
+          'not null' => TRUE,
+          'default' => '',
+        ),
+        'value' => array(
+          'type' => 'blob',
+          'not null' => TRUE,
+          'size' => 'big',
+          'translatable' => TRUE,
+        ),
+      ),
+      'primary key' => array(
+        'name',
+      ),
+      'module' => 'system',
+      'name' => 'variable',
+    ));
+    $database->insert('variable')->fields(array(
+      'name',
+      'value',
+    ))
+    ->values(array(
+      'name' => 'image_toolkit',
+      'value' => 's:2:"gd";',
+    ))
+    ->execute();
+  }
+
+}
diff --git a/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImageGd.php b/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImageGd.php
new file mode 100644
index 0000000..4771bdb
--- /dev/null
+++ b/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImageGd.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate\Tests\Drupal6SystemImageGd.
+ */
+
+namespace Drupal\migrate\Tests\Dump;
+
+use Drupal\Core\Database\Connection;
+
+/**
+ * Database dump for testing system.image.gd.yml migration.
+ */
+class Drupal6SystemImageGd {
+
+  /**
+   * Sample database schema and values.
+   *
+   * @param \Drupal\Core\Database\Connection $database
+   *   The database connection.
+   */
+  public static function load(Connection $database) {
+    $database->schema()->createTable('variable', array(
+      'fields' => array(
+        'name' => array(
+          'type' => 'varchar',
+          'length' => 128,
+          'not null' => TRUE,
+          'default' => '',
+        ),
+        'value' => array(
+          'type' => 'blob',
+          'not null' => TRUE,
+          'size' => 'big',
+          'translatable' => TRUE,
+        ),
+      ),
+      'primary key' => array(
+        'name',
+      ),
+      'module' => 'system',
+      'name' => 'variable',
+    ));
+    $database->insert('variable')->fields(array(
+      'name',
+      'value',
+    ))
+    ->values(array(
+      'name' => 'image_jpeg_quality',
+      'value' => 'i:75;',
+    ))
+    ->execute();
+  }
+
+}
diff --git a/lib/Drupal/migrate/Tests/MigrateSystemConfigsTest.php b/lib/Drupal/migrate/Tests/MigrateSystemConfigsTest.php
index 09529c1..5ec8210 100644
--- a/lib/Drupal/migrate/Tests/MigrateSystemConfigsTest.php
+++ b/lib/Drupal/migrate/Tests/MigrateSystemConfigsTest.php
@@ -72,4 +72,35 @@ class MigrateSystemConfigsTest extends MigrateTestBase {
     $config = \Drupal::config('system.rss');
     $this->assertIdentical($config->get('items.limit'), 10);
   }
+
+  /**
+   * Tests migration of system (image) variables to system.image.yml.
+   */
+  public function testSystemImage() {
+    $migration = entity_load('migration', 'd6_system_image');
+    $dumps = array(
+      drupal_get_path('module', 'migrate') . '/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImage.php',
+    );
+    $this->prepare($migration, $dumps);
+    $executable = new MigrateExecutable($migration, new MigrateMessage());
+    $executable->import();
+    $config = \Drupal::config('system.image');
+    $this->assertIdentical($config->get('toolkit'), 'gd');
+  }
+
+  /**
+   * Tests migration of system (image GD) variables to system.image.gd.yml.
+   */
+  public function testSystemImageGd() {
+    $migration = entity_load('migration', 'd6_system_image_gd');
+    $dumps = array(
+      drupal_get_path('module', 'migrate') . '/lib/Drupal/migrate/Tests/Dump/Drupal6SystemImageGd.php',
+    );
+    $this->prepare($migration, $dumps);
+    $executable = new MigrateExecutable($migration, new MigrateMessage());
+    $executable->import();
+    $config = \Drupal::config('system.image.gd');
+    $this->assertIdentical($config->get('jpeg_quality'), 75);
+  }
+
 }
