diff --git a/core/modules/migrate_drupal/config/migrate.migration.d6_contact_settings.yml b/core/modules/migrate_drupal/config/migrate.migration.d6_contact_settings.yml
index 823944d..1029292 100644
--- a/core/modules/migrate_drupal/config/migrate.migration.d6_contact_settings.yml
+++ b/core/modules/migrate_drupal/config/migrate.migration.d6_contact_settings.yml
@@ -1,12 +1,16 @@
 id: d6_contact_settings
 source:
-  plugin: variable
+  plugin: d6_contact_settings
   variables:
     - contact_default_status
     - contact_hourly_threshold
 process:
   user_default_enabled: contact_default_status
   'flood.limit': contact_hourly_threshold
+  default_category:
+    -
+      plugin: machine_name
+      source: default_category
 destination:
   plugin: config
   config_name: contact.settings
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
index 067c63d..ac53159 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
@@ -8,6 +8,7 @@
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+use Drupal\migrate\Row;
 
 /**
  * Drupal 6 contact category source from database.
@@ -36,6 +37,13 @@ public function query() {
     $query->orderBy('cid');
     return $query;
   }
+  
+  /**
+    * {@inheritdoc}
+    */
+  public function prepareRow(Row $row) {
+    $row->setSourceProperty('recipients', explode(',', $row->getSourceProperty('recipients')));
+  }
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactSettings.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactSettings.php
new file mode 100644
index 0000000..66d5a59
--- /dev/null
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactSettings.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal\Plugin\migrate\source\d6\ContactSettings.
+ */
+
+namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
+use Drupal\migrate_drupal\Plugin\migrate\source\Variable;
+
+/**
+ * @MigrateSource(
+ *   id = "d6_contact_settings"
+ * )
+ */
+class ContactSettings extends Variable {
+
+  /**
+   * {@inheritdoc}
+   */
+  function runQuery() {
+    $default_category = $this->select('contact', 'c')
+                             ->fields('c', array('category'))
+                             ->condition('selected', 1)
+                             ->execute()
+                             ->fetchField();
+    return new \ArrayIterator(array($this->values() + array('default_category' => $default_category)));
+  }
+  
+  /**
+   * Gather variables related to 
+   */ 
+  function values() {
+    return array_map('unserialize', $this->prepareQuery()->execute()->fetchAllKeyed());
+  }
+
+}
\ No newline at end of file
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactCategoryTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactCategoryTest.php
index f46884c..147974d 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactCategoryTest.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactCategoryTest.php
@@ -56,7 +56,7 @@ public function testContactCategory() {
     /** @var \Drupal\contact\Entity\Category $contact_category */
     $contact_category = entity_load('contact_category', 'website_feedback');
     $this->assertEqual($contact_category->label, 'Website feedback');
-    $this->assertEqual($contact_category->recipients, 'admin@example.com');
+    $this->assertEqual($contact_category->recipients, array('admin@example.com'));
     $this->assertEqual($contact_category->reply, '');
     $this->assertEqual($contact_category->weight, 0);
   }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactConfigsTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactConfigsTest.php
index 3609266..4746a31 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactConfigsTest.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateContactConfigsTest.php
@@ -42,6 +42,7 @@ public function setUp() {
     $migration = entity_load('migration', 'd6_contact_settings');
     $dumps = array(
       drupal_get_path('module', 'migrate_drupal') . '/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6ContactSettings.php',
+      drupal_get_path('module', 'migrate_drupal') . '/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6ContactCategory.php',
     );
     $this->prepare($migration, $dumps);
     $executable = new MigrateExecutable($migration, new MigrateMessage());
@@ -55,5 +56,6 @@ public function testContactSettings() {
     $config = \Drupal::config('contact.settings');
     $this->assertIdentical($config->get('user_default_enabled'), true);
     $this->assertIdentical($config->get('flood.limit'), 3);
+    $this->assertIdentical($config->get('default_category'), 'website_feedback');
   }
 }
