diff --git a/weight.info b/weight.info
index 146c3ec..b69d834 100644
--- a/weight.info
+++ b/weight.info
@@ -4,3 +4,4 @@ core = 7.x
 
 files[] = views/weight_handler_field_weight.inc
 files[] = views/weight_handler_filter_weight_enabled.inc
+files[] = weight.migrate.inc
diff --git a/weight.migrate.inc b/weight.migrate.inc
new file mode 100644
index 0000000..25519f3
--- /dev/null
+++ b/weight.migrate.inc
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * @file
+ * Migrate support for weight.
+ */
+
+/**
+ * Implements hook_migrate_api().
+ */
+function weight_migrate_api() {
+  return array(
+    'api' => 2,
+    'destination handlers' => array(
+      'WeightNodeHandler',
+    ),
+  );
+}
+
+class WeightNodeHandler extends MigrateDestinationHandler {
+  public function __construct() {
+    $this->registerTypes(array('node'));
+  }
+
+  public function fields($entity_type, $bundle) {
+    $settings = _weight_get_settings($bundle);
+    if (!empty($settings) && $settings['enabled']) {
+      return array(
+        'weight' => t('The node weight ranging between @min and @max.', array(
+          '@max' => $settings['range'],
+          '@min' => (int)$settings['range']*-1,
+        )),
+      );
+    }
+  }
+
+  public function prepare($entity, stdClass $row) {
+    $settings = _weight_get_settings($entity->type);
+    if (!empty($settings) && $settings['enabled']) {
+      // Use the mapped entity value to populate the real value
+      if (isset($entity->weight)) {
+        $entity->weight_weight = $entity->weight;
+        unset($entity->weight);
+      }
+      else {
+        $entity->weight_weight = $settings['default'];
+      }
+    }
+  }
+}
