--- uc_moneris.install	Thu Jul 16 17:22:59 2009
+++ uc_moneris.install.new	Tue Aug 18 18:44:25 2009
@@ -33,5 +33,49 @@
  */
 function uc_moneris_uninstall() {
   // Delete related variables all at once.
-  db_query("DELETE FROM {variable} WHERE name LIKE 'moneris_%%'");
+  db_query("DELETE FROM {variable} WHERE name LIKE 'uc_moneris_%%'");
+}
+
+
+/**
+ * Implementation of hook_update().
+ */
+function uc_moneris_update_1() {
+  $ret = array();
+
+  // Rename variables while preserving setting values
+  variable_set('uc_moneris_store_id',
+               variable_get('moneris_store_id', ''));
+  variable_set('uc_moneris_api_version',
+               variable_get('moneris_api_version', ''));
+  variable_set('uc_moneris_api_token',
+               variable_get('moneris_api_token', ''));
+  variable_set('uc_moneris_transaction_mode',
+               variable_get('moneris_transaction_mode', 'test'));
+  variable_set('uc_moneris_transaction_type',
+               variable_get('moneris_transaction_type', 'purchase'));
+  variable_set('uc_moneris_avs_enable',
+               variable_get('moneris_avs_enable', 'disabled'));
+  variable_set('uc_moneris_cvv_enable',
+               variable_get('moneris_cvv_enable', 'disabled'));
+  variable_set('uc_moneris_vbv_enable',
+               variable_get('moneris_vbv_enable', 'disabled'));
+  variable_set('uc_moneris_vbv_strict',
+               variable_get('moneris_vbv_strict', 'disabled'));
+
+  // Remove all old variables from the database
+  variable_del('moneris_store_id');
+  variable_del('moneris_api_version');
+  variable_del('moneris_api_token');
+  variable_del('moneris_transaction_mode');
+  variable_del('moneris_transaction_type');
+  variable_del('moneris_avs_enable');
+  variable_del('moneris_cvv_enable');
+  variable_del('moneris_vbv_enable');
+  variable_del('moneris_vbv_strict');
+
+  // Remove unused variable from the database
+  variable_del('moneris_version');
+
+  return $ret;
 }
