diff --git a/block_class.features.inc b/block_class.features.inc
new file mode 100644
index 0000000..751f774
--- /dev/null
+++ b/block_class.features.inc
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * @file
+ * Integration with the Features module API.
+ */
+
+/**
+ * Implements hook_features_export_options().
+ */
+function block_class_features_export_options() {
+  $query = db_select('block');
+  $query->condition('css_class', '', '!=');
+  $query->addExpression("CONCAT(block.module, ':', block.delta)");
+  $blocks = $query->execute()->fetchAllKeyed(0, 0);
+
+  natcasesort($blocks);
+  return $blocks;
+}
+
+/**
+ * Implements hook_features_export().
+ */
+function block_class_features_export($data, &$export, $module_name = '') {
+  $pipe = array();
+
+  $export['dependencies']['features'] = 'features';
+  $export['dependencies']['block_class'] = 'block_class';
+
+  foreach ($data as $component) {
+    $export['features']['block_class'][$component] = $component;
+  }
+
+  return $pipe;
+}
+
+/**
+ * Implements hook_features_export_render().
+ */
+function block_class_features_export_render($module, $data) {
+  $query = db_select('block');
+  $query->condition('css_class', '', '!=');
+  $query->addExpression("CONCAT(block.module, ':', block.delta)", 'id');
+  $query->addField('block', 'css_class');
+  $classes = $query->execute()->fetchAllKeyed(1, 0);
+
+  $code = array();
+  foreach ($data as $id) {
+    if (isset($classes[$id])) {
+      list($module, $delta) = explode(':', $id);
+      $css_classes = $classes[$id];
+      $code[$id] = compact('module', 'delta', 'css_classes');
+    }
+  }
+
+  $code = "  return " . features_var_export($code, '  ') . ";";
+
+  return array('block_class_features_default_class' => $code);
+}
+
+/**
+ * Implements hook_features_revert().
+ */
+function block_class_features_revert($module) {
+  block_class_features_rebuild($module);
+}
+
+/**
+ * Implements hook_features_rebuild().
+ */
+function block_class_features_rebuild($module) {
+  $blocks = module_invoke($module, 'block_class_features_default_class');
+  if ($blocks) {
+    foreach ($blocks as $block) {
+      db_update('block')
+        ->fields(array(
+          'css_class' => $block['css_classes'],
+        ))
+        ->condition('module', $block['module'])
+        ->condition('delta', $block['delta'])
+        ->execute();
+    }
+  }
+}
diff --git a/block_class.module b/block_class.module
index 22b2022..0cfc4b6 100644
--- a/block_class.module
+++ b/block_class.module
@@ -98,3 +98,21 @@ function block_class_form_submit($form, &$form_state) {
     }
   }
 }
+
+/**
+ * Implements hook_features_api().
+ */
+function block_class_features_api() {
+  // Features Extra offers Features integration for Block Class.
+  // @see https://drupal.org/node/1868586#comment-6928192
+  if (!module_exists('fe_block')) {
+    return array(
+      'block_class' => array(
+        'name' => t('Block class'),
+        'feature_source' => TRUE,
+        'default_hook' => 'block_class_features_default_class',
+        'file' => drupal_get_path('module', 'block_class') . '/block_class.features.inc',
+      ),
+    );
+  }
+}
