diff --git a/captcha.module b/captcha.module
index a1a55dc..bcd38d6 100644
--- a/captcha.module
+++ b/captcha.module
@@ -703,3 +703,75 @@ function captcha_captcha($op, $captcha_type = '') {
       break;
   }
 }
+
+/**
+ * Implementation of hook_features_api().
+ */
+function captcha_features_api() {
+  return array(
+    'captcha' => array(
+      'name' => t('Captcha points'),
+      'default_hook' => 'captcha_default_points',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_features_export_options().
+ */
+function captcha_features_export_options() {
+  $options = array();
+
+  $result = db_query("SELECT form_id FROM {captcha_points} ORDER BY form_id ASC");
+  while($form_id = db_result($result)) {
+    $options[$form_id] = $form_id;
+  }
+
+  return $options;
+}
+
+/**
+ * Get captcha point given form_id.
+ */
+function _captcha_features_get_point($form_id) {
+  return db_fetch_array(db_query("SELECT * FROM {captcha_points} WHERE form_id = '%s'", $form_id));
+}
+
+/**
+ * Implementation of hook_features_export().
+ */
+function captcha_features_export($data, &$export, $module_name = '') {
+  $export['dependencies']['captcha'] = 'captcha';
+
+  foreach($data as $form_id) {
+    $export['features']['captcha'][$form_id] = $form_id;
+  }
+}
+
+/**
+ * Implementation of hook_features_export_render().
+ */
+function captcha_features_export_render($module_name, $data) {
+  $code = array();
+
+  foreach ($data as $form_id) {
+    $point = _captcha_features_get_point($form_id);
+    $code[$form_id] = $point;
+  }
+
+  $code = '  return ' . features_var_export($code, '  ') . ';';
+  return array('captcha_default_points' => $code);
+}
+
+/**
+ * Implementation of hook_features_revert().
+ */
+function captcha_features_revert($module) {
+  if ($defaults = features_get_default('captcha', $module)) {
+    foreach ($defaults as $form_id => $point) {
+      db_query("DELETE FROM {captcha_points} WHERE form_id = '%s'", $form_id);
+      drupal_write_record('captcha_points', $point);
+    }
+  }
+}
