diff --git a/includes/uuid_fpp.features.inc b/includes/uuid_fpp.features.inc
new file mode 100644
index 0000000..d63b13a
--- /dev/null
+++ b/includes/uuid_fpp.features.inc
@@ -0,0 +1,188 @@
+<?php
+/**
+ * @file
+ * Features hooks for the uuid_fpp features component.
+ */
+
+/**
+ * Implements hook_features_export_options().
+ */
+function uuid_fpp_features_export_options() {
+  $options = array();
+
+  $query = 'SELECT f.fpid, f.title, f.bundle, f.uuid
+    FROM {fieldable_panels_panes} f ORDER BY f.bundle, f.title ASC';
+  $results = db_query($query);
+  foreach ($results as $fpp) {
+    $bundle_name = ucwords(str_replace('_', ' ', $fpp->bundle));
+    $display_title = ($fpp->admin_title) ? $fpp->admin_title : $fpp->uuid;
+
+    $options[$fpp->uuid] = $bundle_name . ' - ' . $display_title;
+  }
+
+  return $options;
+}
+
+/**
+ * Implements hook_features_export().
+ */
+function uuid_fpp_features_export($data, &$export, $module_name = '') {
+  $export['dependencies']['fieldable_panels_panes'] = 'fieldable_panels_panes';
+  $export['dependencies']['uuid_features'] = 'uuid_features';
+
+  // Add extra dependencies so we don't lose track of bundles.
+  $fpp_modules = _uuid_fp_features_provides_bundle();
+  foreach ($fpp_modules as $module) {
+    $export['dependencies'][$module] = $module;
+  }
+
+  uuid_features_load_module_includes();
+
+  $fpids = entity_get_id_by_uuid('fieldable_panels_pane', $data);
+  foreach ($fpids as $uuid => $fpid) {
+    // Load the FPP matching the $fpid.
+    $query = new EntityFieldQuery();
+    $fpp = $query
+      // We just want one FPP: the one matching
+      // the current $fpid.
+      ->entityCondition('entity_type', 'fieldable_panels_pane')
+      ->propertyCondition('fpid', $fpid)
+      ->range(0, 1)
+      ->execute();
+
+    $export['features']['uuid_fpp'][$uuid] = $uuid;
+    $pipe['fieldable_panels_pane'][$fpp['fieldable_panels_pane'][$fpid]->bundle] = $fpp['fieldable_panels_pane'][$fpid]->bundle;
+
+    // drupal_alter() normally supports just one byref parameter. Using
+    // the __drupal_alter_by_ref key, we can store any additional parameters
+    // that need to be altered, and they'll be split out into additional params
+    // for the hook_*_alter() implementations.  The hook_alter signature is
+    // hook_uuid_fpp_features_export_alter(&$export, &$pipe, $fpp).
+    $data = &$export;
+    $data['__drupal_alter_by_ref'] = array(&$pipe);
+    drupal_alter('uuid_fpp_features_export', $data, $fpp);
+  }
+
+  return $pipe;
+}
+
+/**
+ * Implements hook_features_export_render().
+ */
+function uuid_fpp_features_export_render($module = 'foo', $data) {
+  $translatables = $code = array();
+
+  $code[] = '  $fpps = array();';
+  $code[] = '';
+  foreach ($data as $uuid) {
+    // @todo reset = TRUE as otherwise references (parent, fields) were destroyed.
+    $fpps = entity_uuid_load('fieldable_panels_pane', array($uuid), array(), TRUE);
+    if (!count($fpps)) {
+      continue;
+    }
+
+    $first_fpp = reset($fpps);
+    $export = clone $first_fpp;
+
+    // Do not export ids.
+    unset($export->vid);
+    unset($export->fpid);
+    unset($export->vuuid);
+    unset($export->current_vid);
+    unset($export->changed);
+
+    uuid_features_file_field_export($export, 'fieldable_panels_pane');
+
+    $json = json_encode($export);
+    $export_array = json_decode($json, TRUE);
+
+    $code[] = '  $fpps[] = ' . features_var_export($export_array, '  ') . ';';
+  }
+
+  if (!empty($translatables)) {
+    $code[] = features_translatables_export($translatables, '  ');
+  }
+
+  $code[] = '  return $fpps;';
+  $code = implode("\n", $code);
+  return array('uuid_features_default_fpps' => $code);
+}
+
+/**
+ * Implements hook_features_revert().
+ */
+function uuid_fpp_features_revert($module) {
+  uuid_fpp_features_rebuild($module);
+}
+
+/**
+ * Implements hook_features_rebuild().
+ * Rebuilds terms based on UUID from code defaults.
+ */
+function uuid_fpp_features_rebuild($module) {
+  $fpps = features_get_default('uuid_fpp', $module);
+
+  if (!empty($fpps)) {
+    // Get info about current FPP types available in system.
+    $entity_info = entity_get_info("fieldable_panels_pane");
+    // Loop through the export.
+    foreach ($fpps as $data) {
+      // Double-check that FPP can be created/reverted.
+      if (!isset($entity_info['bundles'][$data['bundle']])) {
+        drupal_set_message('Bundle not found for fieldable panels pane of type ' . $data['bundle'] . '. Fieldable panels pane was not created/reverted.', 'warning');
+      }
+      else {
+        // If this is an update, there will be a by-UUID matching FPP.
+        $existing = entity_get_id_by_uuid('fieldable_panels_pane', array($data['uuid']));
+        if (!empty($existing)) {
+          $fpp = entity_load_single('fieldable_panels_pane', $existing[$data['uuid']]);
+          foreach ($data as $key => $value) {
+            $fpp->$key = $value;
+          }
+        }
+        else {
+          // Create a new FPP.
+          $fpp = entity_create('fieldable_panels_pane', $data);
+        }
+
+        uuid_features_file_field_import($fpp, 'fieldable_panels_pane');
+
+        if (!fieldable_panels_panes_save($fpp)) {
+          drupal_set_message('Failed to create ' . $data['bundle'] . ' fieldable panels pane ' . $data['label'], 'error');
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Helper function to discover modules which provide FPP bundles for proper
+ * dependency mapping
+ *
+ * Same process as module_invoke_all().
+ */
+function _uuid_fp_features_provides_bundle() {
+  $implements = array();
+  $data = array();
+
+  // Discover all modules which implement entity_info_alter
+  $hook = 'entity_info_alter';
+  foreach (module_implements($hook) as $module) {
+    $function = $module . '_' . $hook;
+    if (function_exists($function)) {
+
+      // Essentially we need to invoke the hook_alter() and see if our target
+      // entity had some values added.
+      $function($data);
+
+      // If we have a key for our entity, log the module.
+      if (isset($data['fieldable_panels_pane'])) {
+        $implements[] = $module;
+      }
+
+      // Always reset the altered array, otherwise we'd probably end up with a loop.
+      $data = array();
+    }
+  }
+  return $implements;
+}
diff --git a/uuid_features.module b/uuid_features.module
index a96efd7..23e8334 100644
--- a/uuid_features.module
+++ b/uuid_features.module
@@ -20,7 +20,7 @@ function uuid_features_menu() {
 function uuid_features_entity_info_alter(&$entity_info) {
   // Provide a list of entities that provide bundles
   // to be exported by uuid_features.
-  $entity_types = array('bean', 'node', 'taxonomy_term');
+  $entity_types = array('bean', 'node', 'taxonomy_term', 'fieldable_panels_pane');
   foreach ($entity_types as $type) {
     // Only add flag on existing entity types.
     if (isset($entity_info[$type])) {
@@ -70,6 +70,16 @@ function uuid_features_features_api() {
     'file' => drupal_get_path('module', 'uuid_features') . '/includes/uuid_bean.features.inc',
   );
 
+  if (module_exists('fieldable_panels_panes')) {
+    $components['uuid_fpp'] = array(
+      'name' => t('Fieldable Panels Pane'),
+      'feature_source' => TRUE,
+      'default_hook' => 'uuid_features_default_fpps',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+      'file' => drupal_get_path('module', 'uuid_features') . '/includes/uuid_fpp.features.inc',
+    );
+  }
+
   return $components;
 }
 
@@ -120,6 +130,59 @@ function uuid_features_features_pipe_taxonomy_alter(&$pipe, $data, $export) {
 }
 
 /**
+ * Implements hook_features_pipe_alter().
+ *
+ * When exporting a Panel, include any attached Fieldable Panels Panes.
+ */
+function uuid_features_features_pipe_alter(&$pipe, $data, $export) {
+  $fpp_uuids = array();
+  foreach($export['features'] as $component => $feature) {
+    if ($component == 'page_manager_pages') {
+      $page_name = key($feature);
+      $handlers = db_select('page_manager_handlers', 'pmh')
+        ->fields('pmh', array('did'))
+        ->condition('subtask', $page_name)
+        ->execute()
+        ->fetchAll();
+      foreach ($handlers as $handler) {
+        $display_id = $handler->did;
+        $panes = db_select('panels_pane', 'pp')
+          ->fields('pp', array('subtype'))
+          ->condition('type', 'fieldable_panels_pane')
+          ->condition('did', $display_id)
+          ->execute()
+          ->fetchAll();
+        foreach($panes as $pane) {
+          $fpp_uuids[] = str_replace('uuid:', '', $pane->subtype);
+        }
+      }
+    }
+    else if ($component == 'panels_mini') {
+      $panel_name = key($feature);
+      $display_id = db_select('panels_mini', 'pm')
+        ->fields('pm', array('did'))
+        ->condition('name', $panel_name)
+        ->execute()
+        ->fetchField();
+      if (empty($display_id)) {
+        continue;
+      }
+
+      $panes = db_select('panels_pane', 'pp')
+        ->fields('pp', array('subtype'))
+        ->condition('type', 'fieldable_panels_pane')
+        ->condition('did', $display_id)
+        ->execute()
+        ->fetchAll();
+      foreach($panes as $pane) {
+        $fpp_uuids[] = str_replace('uuid:', '', $pane->subtype);
+      }
+    }
+  }
+  $pipe['uuid_fpp'] = $fpp_uuids;
+}
+
+/**
  * Menu callback to configure module settings.
  */
 function uuid_features_settings($form, &$form_state) {
@@ -212,6 +275,9 @@ function uuid_features_file_field_export(&$export, $entity_type) {
     case "node":
       $export_bundle = $export->type;
       break;
+    case "fieldable_panels_pane":
+      $export_bundle = $export->bundle;
+      break;
   }
   $fields = field_info_instances($entity_type, $export_bundle);
   $supported_fields = array_map('trim', explode(',', variable_get('uuid_features_file_supported_fields', 'file, image')));
@@ -270,6 +336,9 @@ function uuid_features_file_field_export(&$export, $entity_type) {
     // get all fields from this entity
     foreach ($fields as $field_instance) {
       // load field infos to check the type
+      if (empty($field_instance['field_name'])) {
+        continue;
+      }
       $field = &$export->{$field_instance['field_name']};
       $info = field_info_field($field_instance['field_name']);
       // check if this field should implement file import/export system
@@ -341,6 +410,9 @@ function uuid_features_file_field_import(&$import, $entity_type) {
     case "node":
       $import_bundle = $import->type;
       break;
+    case "fieldable_panels_pane":
+      $import_bundle = $import->bundle;
+      break;
   }
   // Get all fields from this bundle.
   $fields = field_info_instances($entity_type, $import_bundle);
