diff --git a/conditional_fields.module b/conditional_fields.module
index 23b8cb2..1136759 100644
--- a/conditional_fields.module
+++ b/conditional_fields.module
@@ -1045,7 +1045,9 @@ function conditional_fields_load_dependencies($entity_type = NULL, $bundle = NUL
   }
 
   if (!isset($dependencies[$entity_type][$bundle])) {
-    $dependencies[$entity_type][$bundle] = array();
+    if (!empty($entity_type) && !empty($bundle)) {
+      $dependencies[$entity_type][$bundle] = array();
+    }
     $default_options = conditional_fields_dependency_default_options();
 
     $select = db_select('conditional_fields', 'cf')
@@ -1719,6 +1721,18 @@ function conditional_fields_dependency_description($dependee_name, $dependent_na
 }
 
 /**
+ * Implements hook_module_implements_alter().
+ *
+ * Ensure that conditional fields features are processed after the fields actually exist.
+ */
+function conditional_fields_module_implements_alter(&$implementations, $hook) {
+  if ( 'features_api' == $hook && isset ( $implementations['conditional_fields'] ) ) {
+    unset ( $implementations['conditional_fields'] );
+    $implementations['conditional_fields'] = '';
+  }
+}
+
+/**
  * Implements hook_features_api().
  */
 function conditional_fields_features_api() {
@@ -1727,7 +1741,7 @@ function conditional_fields_features_api() {
       'name' => t('Conditional Fields'),
       'default_hook' => 'conditional_fields_default_fields',
       'default_file' => FEATURES_DEFAULTS_INCLUDED,
-      'features_source' => TRUE,
+      'feature_source' => TRUE,
       'file' => drupal_get_path('module', 'conditional_fields') . '/includes/conditional_fields.features.inc',
     ),
   );
diff --git a/includes/conditional_fields.features.inc b/includes/conditional_fields.features.inc
index c3ad326..ae9a912 100644
--- a/includes/conditional_fields.features.inc
+++ b/includes/conditional_fields.features.inc
@@ -34,13 +34,15 @@ function conditional_fields_features_export($data, &$export, $module_name = '')
 }
 
 /**
- * Implments hook_features_export_render()
+ * Implements hook_features_export_render().
  */
-function conditional_fields_features_export_render($module_name = '', $data) {
+function conditional_fields_features_export_render($module_name, $data, $export = NULL) {
   $dependencies = conditional_fields_load_dependencies();
-  if (!empty($dependencies)) {
-    $code[] = '  $items = array();';
+  if (empty($dependencies)) {
+    return array();
   }
+
+  $code = array();
   foreach ($data as $option) {
     $tokens = explode(':', $option);
     $entity = $tokens[0];
@@ -48,34 +50,28 @@ function conditional_fields_features_export_render($module_name = '', $data) {
 
     if (isset($dependencies[$entity]) && isset($dependencies[$entity][$bundle])) {
       $info = $dependencies[$entity][$bundle];
-      foreach ($info as $k => $v) {
-        if (isset($v['dependees'])) {
+      foreach ($info['dependents'] as $dependent_field_name => $dependees) {
+        foreach ($dependees as $dependee) {
+          $code[] = '';
           $code[] = '  $items[] = array(';
           $code[] = "    'entity' => '" . $entity . "',";
           $code[] = "    'bundle' => '" . $bundle . "',";
-          $code[] = "    'dependent' => '" . $k . "',";
-          $dependee = array_keys($v['dependees']);
-          $code[] = "    'dependee' => '" . $dependee[0] . "',";
-          $code[] = "    'options' => ";
-          $vals = explode("\n", var_export($v['dependees'][$dependee[0]]['options'], TRUE));
-          // $code += $vals would work just as well here, but this formats the output nicer.
-          foreach ($vals as $val) {
-            $code[] = '      ' . $val;
-          }
+          $code[] = "    'dependent' => '" . $dependent_field_name . "',";
+          $code[] = "    'dependee' => '" . $dependee['dependee'] . "',";
+
+          $code[] = "    'options' => " . features_var_export($dependee['options'], '    ') . ',';
           $code[] = '  );';
         }
       }
     }
-
-
   }
   if (empty($code)) {
     return array();
   }
 
+  array_unshift($code, '  $items = array();');
   $code[] = '';
   $code[] = '  return $items;';
-  $code =   array('  $items = array();') + $code;
   $output = implode("\n", $code);
 
   return array('conditional_fields_default_fields' => $output);
@@ -94,10 +90,12 @@ function conditional_fields_features_rebuild($module) {
     $node_types = array();
     foreach ($defaults as $field) {
       if (isset($dependencies[$field['entity']][$field['bundle']])) {
-        foreach ($dependencies[$field['entity']][$field['bundle']] as $k => $v) {
-          if (isset($v['dependees'])) {
-            foreach ($v['dependees'] as $foo => $bar) {
-              $deps_to_remove[$bar['id']] = $bar['id'];
+        foreach ($dependencies[$field['entity']][$field['bundle']] as $dependancy_type => $field_dep_settings) {
+          if ($dependancy_type == 'dependees' && !empty($field_dep_settings)) {
+            foreach ($field_dep_settings as $dep_setting) {
+              foreach($dep_setting as $id => $dep_settings){
+                $deps_to_remove[$id] = $id;
+              }
             }
           }
         }
