diff --git a/modules/order/includes/commerce_order.checkout_pane.inc b/modules/order/includes/commerce_order.checkout_pane.inc
index 8bfb7ca..1f1a207 100644
--- a/modules/order/includes/commerce_order.checkout_pane.inc
+++ b/modules/order/includes/commerce_order.checkout_pane.inc
@@ -67,6 +67,7 @@ function commerce_order_account_pane_checkout_form($form, &$form_state, $checkou
       '#title' => t('E-mail address'),
       '#default_value' => $order->mail,
       '#required' => TRUE,
+      '#element_validate' => array('_element_validate_trim_email'),
     );
 
     if (variable_get('commerce_order_account_pane_mail_double_entry', FALSE)) {
@@ -76,6 +77,7 @@ function commerce_order_account_pane_checkout_form($form, &$form_state, $checkou
         '#description' => t('Provide your e-mail address in both fields.'),
         '#default_value' => $order->mail,
         '#required' => TRUE,
+        '#element_validate' => array('_element_validate_trim_email'),
       );
     }
   }
@@ -83,6 +85,11 @@ function commerce_order_account_pane_checkout_form($form, &$form_state, $checkou
   return $pane_form;
 }
 
+function _element_validate_trim_email($element, &$form_state, $form) {
+  $trimmed_email = trim($element['#value']);
+  form_set_value($element, $trimmed_email, $form_state);
+}
+
 /**
  * Account pane: validation callback.
  */
