diff --git a/core/modules/language/migration_templates/d6_language_negotiation_settings.yml b/core/modules/language/migration_templates/d6_language_negotiation_settings.yml
new file mode 100644
index 0000000..4a0c9ef
--- /dev/null
+++ b/core/modules/language/migration_templates/d6_language_negotiation_settings.yml
@@ -0,0 +1,26 @@
+id: d6_language_negotiation_settings
+label: Language negotiation settings
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - language_negotiation
+  constants:
+    session_parameter: 'language'
+process:
+  'session/parameter': 'constants/session_parameter'
+  'url/source':
+    plugin: static_map
+    source: language_negotiation
+    map:
+      # LANGUAGE_NEGOTIATION_NONE = 0
+      # LANGUAGE_NEGOTIATION_PATH_DEFAULT = 1
+      # LANGUAGE_NEGOTIATION_PATH = 2
+      # LANGUAGE_NEGOTIATION_DOMAIN = 3
+      1: path_prefix
+      2: path_prefix
+      3: domain
+destination:
+  plugin: config
+  config_name: language.negotiation
diff --git a/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageNegotiationSettingsTest.php b/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageNegotiationSettingsTest.php
new file mode 100644
index 0000000..868a782
--- /dev/null
+++ b/core/modules/language/tests/src/Kernel/Migrate/d6/MigrateLanguageNegotiationSettingsTest.php
@@ -0,0 +1,80 @@
+<?php
+
+namespace Drupal\Tests\language\Kernel\Migrate\d6;
+
+use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl;
+use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
+
+/**
+ * Tests migration of language negotiation variables.
+ *
+ * @group migrate_drupal_6
+ */
+class MigrateLanguageNegotiationSettingsTest extends MigrateDrupal6TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['language'];
+
+  /**
+   * Tests migration of language negotiation variables to language.negotiation.yml.
+   */
+  public function testLanguageNegotiationWithDefaultPathPrefix() {
+    $this->executeMigration('d6_language_negotiation_settings');
+
+    $config = $this->config('language.negotiation');
+    $this->assertSame($config->get('session.parameter'), 'language');
+    $this->assertSame($config->get('url.source'), LanguageNegotiationUrl::CONFIG_PATH_PREFIX );
+  }
+
+  /**
+   * Tests migration of language negotiation variables to language.negotiation.yml.
+   */
+  public function testLanguageNegotiationWithNoNegotiation() {
+    $this->sourceDatabase->update('variable')
+      ->fields(array('value' => serialize(0)))
+      ->condition('name', 'language_negotiation')
+      ->execute();
+
+    $this->executeMigration('d6_language_negotiation_settings');
+
+    $config = $this->config('language.negotiation');
+    $this->assertSame($config->get('session.parameter'), NULL);
+    $this->assertSame($config->get('url.source'), NULL);
+  }
+
+  /**
+   * Tests migration of language negotiation variables to language.negotiation.yml.
+   */
+  public function testLanguageNegotiationWithPathPrefix() {
+
+    $this->sourceDatabase->update('variable')
+      ->fields(array('value' => serialize(2)))
+      ->condition('name', 'language_negotiation')
+      ->execute();
+
+    $this->executeMigration('d6_language_negotiation_settings');
+
+    $config = $this->config('language.negotiation');
+    $this->assertSame($config->get('session.parameter'), 'language');
+    $this->assertSame($config->get('url.source'), LanguageNegotiationUrl::CONFIG_PATH_PREFIX);
+  }
+
+  /**
+   * Tests migration of language negotiation variables to language.negotiation.yml.
+   */
+  public function testLanguageNegotiationWithDomain() {
+    $this->sourceDatabase->update('variable')
+      ->fields(array('value' => serialize(3)))
+      ->condition('name', 'language_negotiation')
+      ->execute();
+
+    $this->executeMigration('d6_language_negotiation_settings');
+
+    $config = $this->config('language.negotiation');
+    $this->assertSame($config->get('session.parameter'), 'language');
+    $this->assertSame($config->get('url.source'), LanguageNegotiationUrl::CONFIG_DOMAIN);
+  }
+
+}
