--- uc_moneris.module	2010-03-08 23:52:40.000000000 -0700
+++ uc_moneris.module.new	2010-03-08 23:40:30.000000000 -0700
@@ -328,7 +328,13 @@ function uc_moneris_charge($order_id, $a
   $order = uc_order_load($order_id);
 
   require_once(drupal_get_path('module', 'uc_moneris') .'/api/mpiClasses.php');
-  require_once(drupal_get_path('module', 'uc_moneris') .'/api/mpgClasses.php');
+  $is_us = (variable_get('uc_moneris_api_version','') != '');
+  if ($is_us) {
+    require_once(drupal_get_path('module', 'uc_moneris') .'/api_us/mpgClasses.php');
+  }
+  else {
+    require_once(drupal_get_path('module', 'uc_moneris') .'/api_can/mpgClasses.php');
+  }
   /**************************** Request Variables *******************************/
   $store_id   = variable_get('uc_moneris_store_id', '');
   $api_token  = variable_get('uc_moneris_api_token', '');
@@ -458,6 +464,26 @@ function uc_moneris_charge($order_id, $a
     /******************************* Response ************************************/
     $mpgResponse  = $mpgHttpPost->getMpgResponse();
     $response_code = $mpgResponse->getResponseCode();
+    
+    $wd = array();
+    
+    $wd[] = 'CardType = ' . $mpgResponse->getCardType();
+    $wd[] = 'TransAmount = ' . $mpgResponse->getTransAmount();
+    $wd[] = 'TxnNumber = ' . $mpgResponse->getTxnNumber();
+    $wd[] = 'ReceiptId = ' . $mpgResponse->getReceiptId();
+    $wd[] = 'TransType = ' . $mpgResponse->getTransType();
+    $wd[] = 'ReferenceNum = ' . $mpgResponse->getReferenceNum();
+    $wd[] = 'ResponseCode = ' . $mpgResponse->getResponseCode();
+    $wd[] = 'Message = ' . $mpgResponse->getMessage();
+    $wd[] = 'AuthCode = ' . $mpgResponse->getAuthCode();
+    $wd[] = 'Complete = ' . $mpgResponse->getComplete();
+    $wd[] = 'TransDate = ' . $mpgResponse->getTransDate();
+    $wd[] = 'TransTime = ' . $mpgResponse->getTransTime();
+    $wd[] = 'Ticket = ' . $mpgResponse->getTicket();
+    $wd[] = 'TimedOut = ' . $mpgResponse->getTimedOut();
+    
+    watchdog('uc_moneris', '<pre>'.join("\n",$wd).'</pre>');
+    
     $txn_number    = $mpgResponse->getTxnNumber();
     $completed = strtolower($mpgResponse->getComplete());
     //Check the CVD?
@@ -507,7 +533,7 @@ function uc_moneris_charge($order_id, $a
       }
     }
 
-    if (($this_trans_type == uc_moneris_preauth_string() && $txn_type == uc_moneris_transaction_type()) && intval($response_code) < 49 || $completed == 'true') {
+    if ($this_trans_type == uc_moneris_preauth_string() && $txn_type == uc_moneris_transaction_type() && intval($response_code) <= 49 && $completed == 'true') {
       //The previous transaction was a preauth before a capture. Run the transaction again in Capture mode.
       $txnArray = array(
         'type'        =>  variable_get('uc_moneris_api_version', '') .'completion',
