diff --git a/plugins/entity_reference.inc b/plugins/entity_reference.inc
new file mode 100644
index 0000000..2890fc6
--- /dev/null
+++ b/plugins/entity_reference.inc
@@ -0,0 +1,112 @@
+<?php
+/**
+ * @file
+ *
+ * Is an alter plugin for defaultcontent
+ *
+ * Handles the exporting and importing of entity_reference fields
+ */
+
+$plugin = array();
+
+/**
+ * Handles the change to the entity need for exporting entity references
+ *
+ * Change the entity_ref field to refer to the machine_name of the
+ * references entities
+ */
+function entity_reference_export_alter(&$entity) {
+  $fields = get_entity_ref_fields();
+  foreach ($fields as $field_name => $field) {
+    if (isset($entity->{$field_name})) {
+      foreach ($entity->{$field_name} as $lang => $items) {
+        foreach ($items as $key => $item) {
+          if (!empty($item['target_id']) && ($nid = $item['target_id']) && ($machine_name = defaultcontent_get_default($nid))) {
+            $entity->{$field_name}[$lang][$key]['machine_name'] = $machine_name;
+            unset($entity->{$field_name}[$lang][$key]['target_id']);
+          }
+          elseif (isset($item['machine_name'])) {
+            //TODO remove
+          }
+          else {
+            unset($entity->{$field_name}[$lang][$key]);
+          }
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Handles the importing of entity_reference fields
+ *
+ * Change the machine_name of ref entities to there nid
+ */
+function entity_reference_import_alter(&$entity) {
+  $fields = get_entity_ref_fields();
+  foreach ($fields as $field_name => $field) {
+    if (isset($entity->{$field_name})) {
+      foreach ($entity->{$field_name} as $lang => $items) {
+        foreach ($items as $key => $item) {
+          if (($machine_name = $item['machine_name']) && ($nid = defaultcontent_get_default($machine_name))) {
+            $entity->{$field_name}[$lang][$key]['target_id'] = $nid;
+            unset($entity->{$field_name}[$lang][$key]['machine_name']);
+          }
+          elseif (isset($item['target_id'])) {
+            //TODO remove
+          }
+          else {
+            unset($entity->{$field_name}[$lang][$key]);
+          }
+        }
+      }
+    }
+  }
+}
+
+/**
+ * Handles a sort to insure that ref entities are import first
+ */
+function entity_reference_import_sort($a, $b) {
+  $fields = get_entity_ref_fields();
+  $a_children = array();
+  $b_children = array();
+  foreach ($fields as $field_name => $field) {
+    if (isset($a->{$field_name})) {
+      foreach ($a->{$field_name} as $lang => $items) {
+        foreach ($items as $key => $item) {
+          $a_children[] = $item['machine_name'];
+        }
+      }
+    }
+    if (isset($b->{$field_name})) {
+      foreach ($b->{$field_name} as $lang => $items) {
+        foreach ($items as $key => $item) {
+          $b_children[] = $item['machine_name'];
+        }
+      }
+    }
+  }
+  if (in_array($a->machine_name, $b_children) || empty($a_children)) {
+    return -1;
+  }
+  elseif (in_array($b->machine_name, $a_children) || empty($b_children)) {
+    return 1;
+  }
+  else {
+    return 0;
+  }
+}
+
+/**
+ * Helper function to get all entity reference fields
+ */
+function get_entity_ref_fields() {
+  $ref_fields = array();
+  foreach (field_info_fields() as $id => $field) {
+    if ($field['type'] == 'entityreference') {
+      $ref_fields[$id] = $field;
+    }
+  }
+  return $ref_fields;
+}
