diff --git a/modules/checkout/includes/commerce_checkout.pages.inc b/modules/checkout/includes/commerce_checkout.pages.inc
index bbb2a06..72c8fee 100644
--- a/modules/checkout/includes/commerce_checkout.pages.inc
+++ b/modules/checkout/includes/commerce_checkout.pages.inc
@@ -277,16 +277,22 @@ function commerce_checkout_form_validate($form, &$form_state) {
   // Catch and clear already pushed messages.
   $previous_messages = drupal_get_messages();
 
+  $form_validate = TRUE;
+
   // Load any pre-existing validation errors for the elements.
   $errors = array();
+  $form_errors = form_get_errors();
 
-  foreach ((array) form_get_errors() as $element_path => $error) {
+  if(!empty($form_errors)){
+    $form_validate = FALSE;
+  }
+
+  foreach ((array) $form_errors as $element_path => $error) {
     list($pane_id, ) = explode('][', $element_path, 2);
     $errors[$pane_id][$element_path] = $error;
   }
 
   // Loop through the enabled checkout panes for the current page.
-  $form_validate = TRUE;
   foreach (commerce_checkout_panes(array('enabled' => TRUE, 'page' => $checkout_page['page_id'])) as $pane_id => $checkout_pane) {
     $validate = TRUE;
 
