diff --git a/includes/commerce_amazon_lpa.payment_method.inc b/includes/commerce_amazon_lpa.payment_method.inc
index 35cc103..02c14e3 100644
--- a/includes/commerce_amazon_lpa.payment_method.inc
+++ b/includes/commerce_amazon_lpa.payment_method.inc
@@ -135,16 +135,20 @@ function commerce_amazon_login_and_pay_redirect_form($form, &$form_state, $order
         $status = $data['AuthorizationStatus'];
         switch ($status['ReasonCode']) {
           case 'AmazonRejected':
-            $message = t('Your order could not be completed, your payment method was rejected.');
+            $message = t('Your order could not be completed, your payment was rejected.');
             drupal_set_message($message, 'error');
-            commerce_order_status_update($order, 'canceled', FALSE, TRUE, t('Order canceled because it was rejected by Amazon'));
+            $api->cancel($order_wrapper);
+            $order_wrapper->{AmazonLPA::REFERENCE_ID_FIELD} = '';
+            commerce_order_status_update($order, 'cart', FALSE, TRUE, t('Order changed to cart because it was rejected by Amazon'));
             drupal_goto('cart');
             break;
 
           case 'TransactionTimedOut':
             $message = t('The payment authorization timed out. Please try again or contact the store.');
             drupal_set_message($message, 'error');
-            commerce_order_status_update($order, 'canceled', FALSE, TRUE, t('Order canceled because the transaction timed out.'));
+            $api->cancel($order_wrapper);
+            $order_wrapper->{AmazonLPA::REFERENCE_ID_FIELD} = '';
+            commerce_order_status_update($order, 'cart', FALSE, TRUE, t('Order changed to cart because the Amazon Pay transaction timed out.'));
             drupal_goto('cart');
             break;
 
