diff --git a/editablefields.module b/editablefields.module
index 673ebd2..941434b 100755
--- a/editablefields.module
+++ b/editablefields.module
@@ -320,7 +320,8 @@ function editablefields_form($form, &$form_state, $entity_type, $entity, $field,
   $form['#entity_type'] = $entity_type;
   $form['#bundle'] = $bundle;
   $form['#langcode'] = $langcode;
-
+  $form['#field_name'] = $field['field_name'];
+   
   list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
   $form['#entity_id'] = $id;
   if (!isset($form_state['editablefields_entities'][$entity_type][$id])) {
@@ -482,6 +483,7 @@ function editablefields_views_form($view, $views_field, &$form, &$form_state) {
       '#tree' => TRUE,
     );
     $form[$field_id][$row_id] = editablefields_form($temp_form, $form_state, $entity_type, $entity, $field, $instance, $langcode, $display);
+	$form['#field_name'] = $views_field->field_info['field_name'];
   }
 
   // Remove our temporary data to make the views object smaller.
@@ -566,7 +568,15 @@ function editablefields_form_submit(&$form, &$form_state) {
     }
   } else {
     // TODO: needs a try / catch.
-    entity_save($element['#entity_type'], $entity);
+	$entity_info = entity_get_info($element['#entity_type']);
+	// create temporary entity object that contains only filed that should be updated
+	$new_entity = new stdClass();
+    $new_entity->{$entity_info['entity keys']['id']} = $element['#entity_id'];
+    $new_entity->type = $element['#entity_type']; 
+    $new_entity->{$entity_info['entity keys']['bundle']} = $element['#bundle'];
+    $new_entity->{$element['#field_name']} = $entity->{$element['#field_name']};
+    field_attach_update($element['#entity_type'], $new_entity);
+    entity_get_controller($element['#entity_type'])->resetCache(array($element['#entity_id']));
     $form_state['rebuild'] = TRUE;
     // Put back the updated entity for used during form rebuild.
     $form_state['editablefields_entities'][$element['#entity_type']][$element['#entity_id']] = $entity;
