diff --git a/modules/checkout/includes/commerce_checkout.pages.inc b/modules/checkout/includes/commerce_checkout.pages.inc
index 1695847..e2955f9 100644
--- a/modules/checkout/includes/commerce_checkout.pages.inc
+++ b/modules/checkout/includes/commerce_checkout.pages.inc
@@ -110,6 +110,10 @@ function commerce_checkout_form($form, &$form_state, $order, $checkout_page) {
         $_SESSION['messages'] = array_merge_recursive($form_state['storage']['messages'][$pane_id], drupal_get_messages());
       }
 
+      // Prevents the messages from being persistent over AJAX calls when they
+      // are supposed to be removed.
+      unset($form_state['storage']['messages'][$pane_id]);
+
       // If there are messages in the session right now for this pane, theme
       // them into the form right above the pane itself.
       if (!empty($_SESSION['messages'])) {
