diff -r b41b8d7c8515 includes/edit.inc
--- a/includes/edit.inc	Tue Jul 15 10:09:08 2014 -0400
+++ b/includes/edit.inc	Tue Jul 15 10:58:00 2014 -0400
@@ -46,23 +46,28 @@
         $field_name = $instance['field_name'];
         // Load the field to read its columns and use first column for value.
         $field = field_info_field($instance['field_name']);
-        $column = array_shift(array_keys($field['columns']));
+        $columns = array_keys($field['columns']);
+        $column = array_shift($columns);
         // Get the language key from the field array.
-        $language = array_shift(array_keys($entity->$field_name));
-        $format = $entity->{$field_name}[$language][0]['format'];
-        $filters = filter_list_format($format);
-        // Which of our filters is active in the format?
-        $our_filters2 = array_intersect_key($our_filters, $filters);
+        $language = field_language($entity_type, $entity, $field_name);
 
-        if (empty($our_filters2)) {
-          continue;
-        }
+        if (!empty($entity->{$field_name}) && isset($entity->{$field_name}[$language][0])) {
+          $format = $entity->{$field_name}[$language][0]['format'];
+          $filters = filter_list_format($format);
 
-        if (!empty($entity->$field_name) && !empty($entity->{$field_name}[$language][0][$column])) {
-          foreach ($our_filters2 as $key => $filter) {
-            $function = $filter['process callback'];
-            if (function_exists($function)) {
-              $entity->{$field_name}[$language][0][$column] = $function($entity->{$field_name}[$language][0][$column], $filter, $formats[$format]);
+          // Which of our filters is active in the format?
+          $our_filters2 = array_intersect_key($our_filters, $filters);
+
+          if (empty($our_filters2)) {
+            continue;
+          }
+
+          if (!empty($entity->$field_name) && !empty($entity->{$field_name}[$language][0][$column])) {
+            foreach ($our_filters2 as $key => $filter) {
+              $function = $filter['process callback'];
+              if (function_exists($function)) {
+                $entity->{$field_name}[$language][0][$column] = $function($entity->{$field_name}[$language][0][$column], $filter, $formats[$format]);
+              }
             }
           }
         }
diff -r b41b8d7c8515 includes/save.inc
--- a/includes/save.inc	Tue Jul 15 10:09:08 2014 -0400
+++ b/includes/save.inc	Tue Jul 15 10:58:00 2014 -0400
@@ -33,9 +33,11 @@
       $field_name = $instance['field_name'];
       // Load the field to read its columns and use first column for value.
       $field = field_info_field($instance['field_name']);
-      $column = array_shift(array_keys($field['columns']));
+      $columns = array_keys($field['columns']);
+      $column = array_shift($columns);
       // Get the language key from the field array.
-      $language = array_shift(array_keys($entity->$field_name));
+      $entity_field_name = array_keys($entity->$field_name);
+      $language = array_shift($entity_field_name);
       $format = $entity->{$field_name}[$language][0]['format'];
       $filters = filter_list_format($format);
       // Which of our filters is active in the format?
