Index: nodewords.module
===================================================================
--- nodewords.module	(revision 3330)
+++ nodewords.module	(working copy)
@@ -96,6 +96,19 @@
 }
 
 /**
+* Implementation of hook_migrate_api().
+*/
+function nodewords_migrate_api() {
+  $api = array(
+    'api' => 1,
+    'integration modules' => array(
+      'nodewords' => array('status' => FALSE),
+    ),
+  );
+  return $api;
+}
+
+/**
  * Implements hook_preprocess_page().
  */
 function nodewords_preprocess_page(&$variables) {
Index: nodewords.migrate.inc
===================================================================
--- nodewords.migrate.inc	(revision 0)
+++ nodewords.migrate.inc	(revision 0)
@@ -0,0 +1,63 @@
+<?php
+// $Id$
+
+/**
+ * @file 
+ *   Hooks for handling Migrate integration
+ */
+
+/**
+ * Implementation of hook_migrate_prepare_node().
+ *
+ * Converts all fields of the type nodewords_META => VALUE to a new array:
+ *   nodewords => META => array ('value' = VALUE)
+ */
+function nodewords_migrate_prepare_node(&$node, $tblinfo, $row) {
+  $errors = array();
+  
+  $node->nodewords = array();
+  
+  foreach (nodewords_migrate_fields_node($node->type) as $source_tag => $label) {
+    if (!empty($node->$source_tag)) {
+      $tag = preg_replace('/nodewords_/', '', $source_tag);
+      $node->nodewords[$tag]['value'] = $node->$source_tag;
+    }
+  }
+  
+  return $errors;
+}
+
+/**
+ * Implementation of hook_migrate_fields_node().
+ *
+ * @return 
+ *   An array of destination fields to be exposed to the Migrate content 
+ *   set for the passed content type.
+ */
+function nodewords_migrate_fields_node($type) {
+  // grab a list of all content types
+  $types = (array) content_types();
+
+  // this will be the returned array of fields to expose
+  $fields = array();
+
+  // sanity checking: see if the passed content type exists
+  if (isset($types[$type])) {
+    // convenience variable
+    $content_type = $types[$type];
+
+    // check if nodewords is allowed for the content type
+    if (variable_get('nodewords_edit_metatags_' . $content_type, TRUE)) {
+      // need to elimate the 0 value entries and then merge the arrays to come up
+      // with an array containing all of the edit allowed and print to head 
+      // allowed meta tags
+      $tags = array_merge(array_filter(variable_get('nodewords_edit', array())), array_filter(variable_get('nodewords_head', array())));
+
+      foreach ($tags as $tag) {
+        $fields['nodewords_' . $tag] = t('Nodewords: ' . ucfirst($tag));
+      }
+    }
+  }
+
+  return $fields;
+}
