diff --git a/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_delete.inc b/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_delete.inc
index ccd4b0e..0effa60 100644
--- a/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_delete.inc
+++ b/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_delete.inc
@@ -46,6 +46,7 @@ class commerce_line_item_handler_field_edit_delete extends views_handler_field {
         '#value' => t('Delete'),
         '#name' => 'delete-line-item-' . $row_id,
         '#attributes' => array('class' => array('delete-line-item')),
+        '#limit_validation_errors' => array(),
         '#line_item_id' => $line_item_id,
         '#submit' => array_merge($form['#submit'], array('commerce_line_item_line_item_views_delete_form_submit')),
       );
@@ -55,14 +56,13 @@ class commerce_line_item_handler_field_edit_delete extends views_handler_field {
   function views_form_submit($form, &$form_state) {
     $order = commerce_order_load($form_state['order']->order_id);
     $field_name = $this->options['id'];
+    $triggering_element = $form_state['triggering_element'];
 
-    foreach (element_children($form[$field_name]) as $row_id) {
-      // Check for the removal of an item.
-      if ($form_state['triggering_element']['#name'] == 'delete-line-item-' . $row_id) {
-        $line_item_id = $form[$field_name][$row_id]['#line_item_id'];
-        // TODO: Remove this dependence on the Cart module API.
-        commerce_cart_order_product_line_item_delete($order, $line_item_id);
-      }
+    // React only if the Delete button was clicked.
+    if (strpos($triggering_element['#name'], 'delete-line-item-') === 0) {
+      $line_item_id = $triggering_element['#line_item_id'];
+      // TODO: Remove this dependence on the Cart module API.
+      commerce_cart_order_product_line_item_delete($order, $line_item_id);
     }
   }
 
diff --git a/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc b/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc
index a60c6f7..a67bba4 100644
--- a/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc
+++ b/modules/line_item/includes/views/handlers/commerce_line_item_handler_field_edit_quantity.inc
@@ -59,18 +59,21 @@ class commerce_line_item_handler_field_edit_quantity extends views_handler_field
 
   function views_form_validate($form, &$form_state) {
     $field_name = $this->options['id'];
-    foreach (element_children($form[$field_name]) as $row_id) {
-      // Ensure the quantity is actually a numeric value.
-      $line_item_id = $form[$field_name][$row_id]['#line_item_id'];
-      if (!is_numeric($form_state['values'][$field_name][$row_id]) || $form_state['values'][$field_name][$row_id] < 0) {
-        form_set_error($field_name . '][' . $row_id, t('You must specify a positive number for the quantity'));
-      }
+    // React only when one of the main submit buttons is clicked.
+    if ($form_state['triggering_element']['#name'] == 'op') {
+      foreach (element_children($form[$field_name]) as $row_id) {
+        // Ensure the quantity is actually a numeric value.
+        $line_item_id = $form[$field_name][$row_id]['#line_item_id'];
+        if (!is_numeric($form_state['values'][$field_name][$row_id]) || $form_state['values'][$field_name][$row_id] < 0) {
+          form_set_error($field_name . '][' . $row_id, t('You must specify a positive number for the quantity'));
+        }
 
-      // If the custom data type attribute of the quantity element is integer,
-      // ensure we only accept whole number values.
-      if ($form[$field_name][$row_id]['#datatype'] == 'integer' &&
-        (int) $form_state['values'][$field_name][$row_id] != $form_state['values'][$field_name][$row_id]) {
-        form_set_error($field_name . '][' . $row_id, t('You must specify a whole number for the quantity.'));
+        // If the custom data type attribute of the quantity element is integer,
+        // ensure we only accept whole number values.
+        if ($form[$field_name][$row_id]['#datatype'] == 'integer' &&
+          (int) $form_state['values'][$field_name][$row_id] != $form_state['values'][$field_name][$row_id]) {
+          form_set_error($field_name . '][' . $row_id, t('You must specify a whole number for the quantity.'));
+        }
       }
     }
   }
@@ -80,22 +83,25 @@ class commerce_line_item_handler_field_edit_quantity extends views_handler_field
     $deleted_line_items = array();
     $updated_line_items = array();
 
-    foreach (element_children($form[$field_name]) as $row_id) {
-      $line_item_id = $form[$field_name][$row_id]['#line_item_id'];
-
-      // If the line item hasn't been deleted...
-      if ($line_item = commerce_line_item_load($line_item_id)) {
-        $form_quantity = $form_state['values'][$field_name][$row_id];
-
-        // If the quantity on the form is different...
-        if ($form_quantity != $line_item->quantity) {
-          // If the quantity specified is 0, flag the line item for deletion.
-          if ($form_quantity == 0) {
-            $deleted_line_items[] = $line_item_id;
-          }
-          else {
-            // Otherwise queue the line item quantity update.
-            $updated_line_items[$line_item_id] = $form_quantity;
+    // React only when one of the main submit buttons is clicked.
+    if ($form_state['triggering_element']['#name'] == 'op') {
+      foreach (element_children($form[$field_name]) as $row_id) {
+        $line_item_id = $form[$field_name][$row_id]['#line_item_id'];
+
+        // If the line item hasn't been deleted...
+        if ($line_item = commerce_line_item_load($line_item_id)) {
+          $form_quantity = $form_state['values'][$field_name][$row_id];
+
+          // If the quantity on the form is different...
+          if ($form_quantity != $line_item->quantity) {
+            // If the quantity specified is 0, flag the line item for deletion.
+            if ($form_quantity == 0) {
+              $deleted_line_items[] = $line_item_id;
+            }
+            else {
+              // Otherwise queue the line item quantity update.
+              $updated_line_items[$line_item_id] = $form_quantity;
+            }
           }
         }
       }
