diff --git a/block_class.features.inc b/block_class.features.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e53686ff8b406449a8a9dd4e9aff4b96ff0952a6
--- /dev/null
+++ b/block_class.features.inc
@@ -0,0 +1,85 @@
+<?php
+
+/**
+ * Implements hook_features_export_options().
+ */
+function block_class_features_export_options() {
+  $query = db_select('block_class', 'bc');
+  $query->addExpression("CONCAT(bc.module, ':', bc.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_class', 'bc');
+  $query->addExpression("CONCAT(bc.module, ':', bc.delta)", 'id');
+  $query->addField('bc', 'css_class');
+  $classes = $query->execute()->fetchAllKeyed(1, 0);
+
+  $code = array();
+  foreach ($data as $id) {
+    if (isset($classes[$id])) {
+      list($module, $delta) = explode(':', $id);
+      $machine_name = NULL;
+      $block_id = $id;
+      if (module_exists('fe_block')) {
+        // Get machine name for the block delta.
+        $machine_name = _fe_block_get_machine_name($delta);
+        // Test if delta is a machine name.
+        if ($machine_name === NULL && _fe_block_get_bid($delta)) {
+          $machine_name = $delta;
+        }
+      }
+      $css_classes = $classes[$id];
+      $code[$block_id] = compact('module', 'delta', 'css_classes', 'machine_name');
+    }
+  }
+
+  $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) {
+      $delta = $block['delta'];
+      db_delete('block_class')->condition('module', $block['module'])->condition('delta', $delta)->execute();
+      if (!empty($block['css_classes'])) {
+        $id = db_insert('block_class')->fields(array('module' => $block['module'], 'delta' => $delta, 'css_class' => $block['css_classes']))->execute();
+      }
+    }
+  }
+}
diff --git a/block_class.module b/block_class.module
index 48088e6dadaecce5696e5327056ec94003aa4b37..f018a12508903ebc31ed65df401fb3de4a45765d 100644
--- a/block_class.module
+++ b/block_class.module
@@ -45,6 +45,9 @@ function block_class_form_alter(&$form, &$form_state, $form_id) {
     $block = new stdClass;
     $block->module = $form['module']['#value'];
     $block->delta = $form['delta']['#value'];
+    if (module_exists('fe_block') && ($machine_name = _fe_block_get_machine_name($form['delta']['#value'])) !== NULL) {
+      $block->delta = _fe_block_get_machine_name($form['delta']['#value']);
+    }
     $css_class = block_class($block);
 
     // Create a more technical description for users with administer blocks permission.
@@ -71,6 +74,9 @@ function block_class_form_submit($form, &$form_state) {
     if (isset($form_state['values']['css_class']) && user_access('administer blocks')) {
       $module = $form_state['values']['module'];
       $delta = $form_state['values']['delta'];
+      if (module_exists('fe_block')) {
+        $delta = $form_state['values']['machine_name'];
+      }
       $class = $form_state['values']['css_class'];
       db_delete('block_class')->condition('module', $module)->condition('delta', $delta)->execute();
       if (!empty($class)) {
@@ -79,3 +85,17 @@ function block_class_form_submit($form, &$form_state) {
     }
   }
 }
+
+/**
+ * Implements hook_features_api().
+ */
+function block_class_features_api() {
+  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',
+    ),
+  );
+}
