diff --git a/payment/uc_paypal/uc_paypal.pages.inc b/payment/uc_paypal/uc_paypal.pages.inc
index 49210d2..4eba37b 100644
--- a/payment/uc_paypal/uc_paypal.pages.inc
+++ b/payment/uc_paypal/uc_paypal.pages.inc
@@ -92,7 +92,8 @@ function uc_paypal_ipn() {
       if ($order->payment_method != 'credit') {
         watchdog('uc_paypal', 'IPN transaction ID has been processed before.', array(), WATCHDOG_NOTICE);
       }
-      return;
+      // disabled this return since it wasn't allowing the order to be modified
+      // return;
     }
 
     db_query("INSERT INTO {uc_payment_paypal_ipn} (order_id, txn_id, txn_type, mc_gross, status, receiver_email, payer_email, received) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', %d)",
@@ -109,6 +110,7 @@ function uc_paypal_ipn() {
     switch ($payment_status) {
       case 'Canceled_Reversal':
         uc_order_comment_save($order_id, 0, t('PayPal has cancelled the reversal and returned !amount !currency to your account.', array('!amount' => uc_price($payment_amount, $context, $options), '!currency' => $payment_currency)), 'admin');
+        uc_order_update_status($order_id, 'canceled');
         break;
 
       case 'Completed':
@@ -118,20 +120,24 @@ function uc_paypal_ipn() {
         $comment = t('PayPal transaction ID: @txn_id', array('@txn_id' => $txn_id));
         uc_payment_enter($order_id, 'paypal_wps', $payment_amount, $order->uid, NULL, $comment);
         uc_cart_complete_sale($order);
+        uc_order_update_status($order_id, 'payment_received');
         uc_order_comment_save($order_id, 0, t('Payment of @amount @currency submitted through PayPal.', array('@amount' => uc_price($payment_amount, $context, $options), '@currency' => $payment_currency)), 'order', 'payment_received');
         uc_order_comment_save($order_id, 0, t('PayPal IPN reported a payment of @amount @currency.', array('@amount' => uc_price($payment_amount, $context, $options), '@currency' => $payment_currency)));
         break;
 
       case 'Denied':
         uc_order_comment_save($order_id, 0, t("You have denied the customer's payment."), 'admin');
+        uc_order_update_status($order_id, 'canceled');
         break;
 
       case 'Expired':
         uc_order_comment_save($order_id, 0, t('The authorization has failed and cannot be captured.'), 'admin');
+        uc_order_update_status($order_id, 'paypal_pending');
         break;
 
       case 'Failed':
         uc_order_comment_save($order_id, 0, t("The customer's attempted payment from a bank account failed."), 'admin');
+        uc_order_update_status($order_id, 'paypal_pending');
         break;
 
       case 'Pending':
@@ -142,12 +148,15 @@ function uc_paypal_ipn() {
       // You, the merchant, refunded the payment.
       case 'Refunded':
         $comment = t('PayPal transaction ID: @txn_id', array('@txn_id' => $txn_id));
+        uc_order_comment_save($order_id, 0, t("The payment has been refunded to customer."), 'admin');
         uc_payment_enter($order_id, 'paypal_wps', $payment_amount, $order->uid, NULL, $comment);
+        uc_order_update_status($order_id, 'canceled');
         break;
 
       case 'Reversed':
         watchdog('uc_paypal', 'PayPal has reversed a payment!', array(), WATCHDOG_ERROR);
         uc_order_comment_save($order_id, 0, t('Payment has been reversed by PayPal: @reason', array('@reason' => _uc_paypal_reversal_message(check_plain($_POST['reason_code'])))), 'admin');
+        uc_order_update_status($order_id, 'canceled');
         break;
 
       case 'Processed':
@@ -156,6 +165,7 @@ function uc_paypal_ipn() {
 
       case 'Voided':
         uc_order_comment_save($order_id, 0, t('The authorization has been voided.'), 'admin');
+        uc_order_update_status($order_id, 'canceled');
         break;
     }
   }
