diff --git a/includes/uuid_bean.features.inc b/includes/uuid_bean.features.inc
index 475e453..0d6ae8c 100644
--- a/includes/uuid_bean.features.inc
+++ b/includes/uuid_bean.features.inc
@@ -95,6 +95,7 @@ function uuid_bean_features_export_render($module, $data) {
       continue;
     }
     $first_bean = reset($beans);
+    // Clone entity to avoid changes by reference.
     $export = clone $first_bean;
 
     // Unset some things that dont need to be exported.
@@ -106,10 +107,9 @@ function uuid_bean_features_export_render($module, $data) {
     // Enable file field exports.
     uuid_features_file_field_export($export, 'bean');
 
-    // Allow other modules to alter the export rendering.
-    // The hook_alter signature is:
-    // hook_uuid_bean_features_export_render_alter(&$export, $bean, $module);
-    drupal_alter('uuid_bean_features_export_render', $export, $bean, $module);
+    $entity_type = 'bean';
+    drupal_alter('uuid_entity_features_export_render', $entity_type, $export, $first_bean);
+    drupal_alter('uuid_bean_features_export_render', $export, $first_bean, $module);
 
     $json = json_encode($export);
     $export_array = json_decode($json, TRUE);
diff --git a/includes/uuid_field_collection.features.inc b/includes/uuid_field_collection.features.inc
index dc3033a..f1c7953 100644
--- a/includes/uuid_field_collection.features.inc
+++ b/includes/uuid_field_collection.features.inc
@@ -64,7 +64,9 @@ function uuid_field_collection_features_export_render($module, $data) {
       continue;
     }
 
-    $export = reset($field_collections);
+    $field_collection = reset($field_collections);
+    // Clone entity to avoid changes by reference.
+    $export = clone $field_collection;
 
     // Do not export ids.
     unset($export->item_id);
@@ -72,6 +74,9 @@ function uuid_field_collection_features_export_render($module, $data) {
 
     uuid_features_file_field_export($export, 'field_collection_item');
 
+    $entity_type = 'field_collection_item';
+    drupal_alter('uuid_entity_features_export_render', $entity_type, $export, $field_collection);
+
     $export_output = features_var_export($export, '  ');
     $export_output = str_replace("entity_import('field_collection_item', '", "", $export_output);
     $export_output = str_replace("}')", "}", $export_output);
diff --git a/includes/uuid_node.features.inc b/includes/uuid_node.features.inc
index a31c9fd..2cd9dba 100755
--- a/includes/uuid_node.features.inc
+++ b/includes/uuid_node.features.inc
@@ -83,6 +83,7 @@ function uuid_node_features_export_render($module, $data) {
     if (!empty($node->path)) {
       $node->pathauto_perform_alias = FALSE;
     }
+    // Clone entity to avoid changes by reference.
     $export = clone $node;
 
     // Use date instead of created, in the same format used by node_object_prepare.
@@ -127,7 +128,7 @@ function uuid_node_features_revert($module) {
 
 /**
  * Implements hook_features_rebuild().
- * 
+ *
  * Rebuilds nodes based on UUID from code defaults.
  */
 function uuid_node_features_rebuild($module) {
diff --git a/includes/uuid_term.features.inc b/includes/uuid_term.features.inc
index 3898a06..1ad81f8 100644
--- a/includes/uuid_term.features.inc
+++ b/includes/uuid_term.features.inc
@@ -121,6 +121,7 @@ function uuid_term_features_export_render($module = 'foo', $data) {
     }
 
     $first_term = reset($terms);
+    // Clone entity to avoid changes by reference.
     $export = clone $first_term;
 
     // Do not export ids.
@@ -131,7 +132,7 @@ function uuid_term_features_export_render($module = 'foo', $data) {
     uuid_features_file_field_export($export, 'taxonomy_term');
 
     $entity_type = 'taxonomy_term';
-    drupal_alter('uuid_entity_features_export_render', $entity_type, $export, $node);
+    drupal_alter('uuid_entity_features_export_render', $entity_type, $export, $first_term);
 
     $code[] = '  $terms[] = ' . features_var_export($export, '  ') . ';';
   }
diff --git a/includes/uuid_user.features.inc b/includes/uuid_user.features.inc
index 7bded9d..0b114fc 100644
--- a/includes/uuid_user.features.inc
+++ b/includes/uuid_user.features.inc
@@ -70,7 +70,8 @@ function uuid_user_features_export_render($module, $data) {
     if (empty($account)) {
       continue;
     }
-    $export = $account;
+    // Clone entity to avoid changes by reference.
+    $export = clone $account;
 
     // Use date instead of created - same format used by node_object_prepare.
     $export->date = format_date($export->created, 'custom', 'Y-m-d H:i:s O');
@@ -78,8 +79,8 @@ function uuid_user_features_export_render($module, $data) {
     $export->pass = user_password(10);
 
     $entity_type = 'user';
-    drupal_alter('uuid_entity_features_export_render', $entity_type, $export, $user);
-    drupal_alter('uuid_user_features_export_render', $export, $user, $module);
+    drupal_alter('uuid_entity_features_export_render', $entity_type, $export, $account);
+    drupal_alter('uuid_user_features_export_render', $export, $account, $module);
 
     $code[] = '  $users[] = ' . features_var_export($export) . ';';
   }
