diff --git a/migrate_d2d.info b/migrate_d2d.info
index df4b75c..fd7f611 100644
--- a/migrate_d2d.info
+++ b/migrate_d2d.info
@@ -18,6 +18,7 @@ files[] = node.inc
 files[] = role.inc
 files[] = taxonomy.inc
 files[] = user.inc
+files[] = variable.inc
 
 ; D5 implementations
 files[] = d5/d5.inc
diff --git a/variable.inc b/variable.inc
new file mode 100644
index 0000000..4f5511b
--- /dev/null
+++ b/variable.inc
@@ -0,0 +1,64 @@
+<?php
+/**
+ * @file
+ * Base class for migrating variables into Drupal.
+ */
+
+/*
+ * Base class for all variables migrations - handles commonalities across
+ * all supported source Drupal versions.
+ */
+abstract class DrupalVariableMigration extends DrupalMigration {
+
+  /**
+   * @param array $arguments
+   */
+  public function __construct(array $arguments) {
+    parent::__construct($arguments);
+
+    // Create our three main objects - source, destination, and map
+    $this->source = new MigrateSourceSQL($this->query(), $this->sourceFields,
+      NULL, $this->sourceOptions);
+
+    $this->destination = new MigrateDestinationVariable();
+
+    $this->map = new MigrateSQLMap($this->machineName,
+      array(
+        'name' => array(
+          'description' => 'The name of the variable.',
+          'type' => 'varchar',
+          'length' => 128,
+          'not null' => TRUE,
+          'default' => '',
+        ),
+      ),
+      MigrateDestinationVariable::getKeySchema()
+    );
+
+    $this->addFieldMapping('name', 'name');
+    $this->addFieldMapping('value', 'value')->callbacks('unserialize');
+  }
+
+  /**
+   * Query for the variable data.
+   *
+   * @return QueryConditionInterface
+   */
+  protected function query() {
+    $query = Database::getConnection('default', $this->sourceConnection)
+             ->select('variable', 'v')
+             ->fields('v');
+    return $query;
+  }
+
+  /**
+   * Implementation of Migration::prepareRow().
+   *
+   * @param $row
+   */
+  public function prepareRow($row) {
+    if (parent::prepareRow($row) === FALSE) {
+      return FALSE;
+    }
+  }
+}
