diff --git noderelationships.inc noderelationships.inc
index b4b2170..8867bb5 100644
--- noderelationships.inc
+++ noderelationships.inc
@@ -32,15 +32,40 @@ function noderelationships_settings_list($where) {
   if (isset($args[0]) && is_array($args[0])) {
     $args = $args[0];
   }
-  $result = db_query('SELECT type_name, relation_type, related_type, field_name, settings FROM {noderelationships_settings} WHERE '. $where, $args);
+
+  // Due to the flexible loading of noderelationships_settings_list(), exported
+  // noderelationships_settings must be synced to the database prior to the
+  // query. Thankfully, this is only necessary if ctools exists.
+  if (module_exists('ctools')) {
+    noderelationships_default_settings_sync();
+  }
+
+  $result = db_query('SELECT type_name, relation_type, related_type, field_name, settings, export_key FROM {noderelationships_settings} WHERE '. $where, $args);
   $rows = array();
   while ($row = db_fetch_object($result)) {
     $row->settings = (!empty($row->settings) ? (array)unserialize($row->settings) : array());
-    $rows[] = $row;
+    $rows[$row->export_key] = $row;
   }
   return $rows;
 }
 
+
+/**
+* Make sure code-provided settings are stored in the database.
+*/
+function noderelationships_default_settings_sync() {
+  ctools_include('export');
+  $content_types = content_types();
+  $records = ctools_export_load_object('noderelationships_settings');
+  foreach ($records as $record) {
+    // Only write the record if it's in code only and the field instance exists.
+    if ($record->in_code_only && !empty($content_types[$record->type_name]['fields'][$record->field_name])) {
+      drupal_write_record('noderelationships_settings', $record);
+    }
+  }
+}
+
+
 /**
  * Get relationship settings for the given content type.
  *
@@ -167,8 +192,8 @@ function noderelationships_settings_save($nodetype, $settings) {
   db_query("DELETE FROM {noderelationships_settings} WHERE type_name = '%s'", $nodetype);
   foreach ($settings_rows as $settings_key => $settings_row) {
     list($relation_type, $related_type, $field_name) = explode(':', $settings_key);
-    $args = array($nodetype, $relation_type, $related_type, $field_name, serialize($settings_row));
-    db_query("INSERT INTO {noderelationships_settings} (type_name, relation_type, related_type, field_name, settings) VALUES ('%s', '%s', '%s', '%s', '%s')", $args);
+    $args = array($nodetype, $relation_type, $related_type, $field_name, serialize($settings_row), $nodetype .'__'. $field_name);
+    db_query("INSERT INTO {noderelationships_settings} (type_name, relation_type, related_type, field_name, settings, export_key) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", $args);
   }
 
   // Synchronize back reference settings with back reference fields.
diff --git noderelationships.install noderelationships.install
index 435338d..fd2781d 100644
--- noderelationships.install
+++ noderelationships.install
@@ -105,8 +105,16 @@ function noderelationships_schema() {
         'type' => 'text',
         'size' => 'medium',
         'not null' => TRUE,
+        'serialize' => TRUE,
         'description' => 'Relation settings (serialized).',
       ),
+      'export_key' => array(
+        'type' => 'varchar',
+        'length' => '64',
+        'not null' => TRUE,
+        'default' => '',
+        'description' => 'Key for importing and export settings.',
+      ),
     ),
     'primary key' => array('type_name', 'relation_type', 'related_type', 'field_name'),
     'indexes' => array(
@@ -115,6 +123,20 @@ function noderelationships_schema() {
       'field_name' => array('field_name'),
     ),
   );
+
+  // Add CTools exportability.  
+  $schema['noderelationships_settings']['export'] = array(
+    'key' => 'export_key',
+    'identifier' => 'noderelationships_default_setting',
+    'default hook' => 'noderelationships_default_settings',
+    'api' => array(
+      'owner' => 'noderelationships',
+      'api' => 'noderelationships',  // Base name for api include files.
+      'minimum_version' => 1,
+      'current_version' => 1,
+    ),
+  );
+
   return $schema;
 }
 
@@ -156,3 +178,31 @@ function noderelationships_update_6003() {
   }
   return $ret;
 }
+
+/**
+ * Add the export_key field, and generate for all existing rows.
+ */
+function noderelationships_update_6004() {
+  global $db_type;
+  $ret = array();
+
+  // Create the new field.
+  $spec = array(
+    'type' => 'varchar',
+    'length' => '64',
+    'not null' => TRUE,
+    'default' => '',
+    'description' => 'Key for importing and export settings.',
+  );
+  db_add_field($ret, 'noderelationships_settings', 'export_key', $spec);
+
+  // Generate the export_key for existing rows.
+  if ($db_type == 'mysql' || $db_type == 'mysqli') {
+    $ret[] = update_sql("UPDATE {noderelationships_settings} SET export_key = concat(type_name, '__', field_name)");
+  }
+  else {
+    $ret[] = update_sql("UPDATE {noderelationships_settings} SET export_key = type_name||'__'||field_name");
+  }
+
+  return $ret;
+}
\ No newline at end of file
diff --git noderelationships.module noderelationships.module
index 4e6c15f..f7c1c18 100644
--- noderelationships.module
+++ noderelationships.module
@@ -469,3 +469,57 @@ function _noderelationships_child_node_form_submit_proxy($form, &$form_state) {
   module_load_include('inc', 'noderelationships', 'noderelationships.pages');
   _noderelationships_child_node_form_submit($form, $form_state);
 }
+
+/*
+ * Implementation of hook_table_name_to_hook_code
+ */
+function noderelationships_noderelationships_settings_to_hook_code($data, $module) {
+  module_load_include('inc', 'noderelationships');
+
+  // Create string placeholders equivalent to the number of export_keys in $data.
+  $data_type = array_pad(array(), count($data), "'%s'");
+  $where = 'export_key in ('. implode(',', $data_type). ')';
+
+  $settings = noderelationships_settings_list($where, $data);
+
+  $code = '  $export = array();'."\n";
+  foreach ($settings as $key => $setting) {
+    $code .= ctools_export_object('noderelationships_settings', $setting, '  ');
+    $code .= '  $export[\''. $key .'\'] = $noderelationships_default_setting;'."\n";
+    $code .= "\n";
+  }
+  $code .= '  return $export;';
+
+  $output = "   {\n$code}\n   ";
+  return $output;
+}
+
+/*
+ * Implementation of hook_table_name_list
+ */
+function noderelationships_noderelationships_settings_list() {
+  module_load_include('inc', 'noderelationships');
+  $list = array();
+
+  foreach (noderelationships_settings_list("1=1") as $key =>$setting) {
+    $list[$key] = $key;
+  }
+
+  return $list;
+}
+
+/**
+ * Implementation of hook_features_pipe_COMPONENT_alter().
+ */
+function noderelationships_features_pipe_content_alter(&$pipe, $data, $export, $module_name) {
+  // We need to verify that Ctools exists before we add anything to the pipe.
+  if (module_exists('ctools')) {
+    module_load_include('inc', 'noderelationships');
+    foreach ($data as $name) {
+      $export_key = implode('__', explode('-', $name));
+      if ($record = noderelationships_settings_list("export_key = '%s'", $export_key)) {
+        $pipe['noderelationships_settings'][] = $export_key;
+      }
+    }
+  }
+}
