diff --git a/includes/commerce_sagepay.admin.inc b/includes/commerce_sagepay.admin.inc
index bba5814d71be25649ec30187e3599d30c70c42a5..ddf28a2b24aa34b7112e70b35fddf1b5f2221545 100644
--- a/includes/commerce_sagepay.admin.inc
+++ b/includes/commerce_sagepay.admin.inc
@@ -296,7 +296,7 @@ function commerce_sagepay_settings_form($form, &$form_state) {
 
 }
 
-function commerce_sagepay_settings_form_validate($form, &$form_state) {
+function commerce_sagepay_settings_form_submit($form, &$form_state) {
 
   // Depending on the integration modes set, enable or disable the
   // default payment gateway rules.
@@ -304,25 +304,34 @@ function commerce_sagepay_settings_form_validate($form, &$form_state) {
 
   if ($form_state['values']['sagepay_form_enabled'] != variable_get
     (SAGEPAY_SETTING_FORM_ENABLED)) {
-    $rules_config = rules_config_load('commerce_payment_commerce_sagepay_form');
-    $rules_config->active = $form_state['values']['sagepay_form_enabled'];
-    $rules_config->save();
+    commerce_sagepay_toggle_payment_method
+    ('commerce_payment_commerce_sagepay_form',
+      $form_state['values']['sagepay_form_enabled']);
   }
 
   if ($form_state['values']['sagepay_server_enabled'] != variable_get
     (SAGEPAY_SETTING_SERVER_ENABLED)) {
-    $rules_config = rules_config_load('commerce_payment_commerce_sagepay_server');
-    $rules_config->active = $form_state['values']['sagepay_server_enabled'];;
-    $rules_config->save();
+    commerce_sagepay_toggle_payment_method
+    ('commerce_payment_commerce_sagepay_server',
+      $form_state['values']['sagepay_server_enabled']);
   }
 
   if ($form_state['values']['sagepay_direct_enabled'] != variable_get
     (SAGEPAY_SETTING_DIRECT_ENABLED)) {
-    $rules_config = rules_config_load('commerce_payment_commerce_sagepay_direct');
-    $rules_config->active = $form_state['values']['sagepay_direct_enabled'];;
-    $rules_config->save();
+    commerce_sagepay_toggle_payment_method
+    ('commerce_payment_commerce_sagepay_direct',
+      $form_state['values']['sagepay_direct_enabled']);
   }
 }
 
+function commerce_sagepay_toggle_payment_method($name, $active) {
+  $query = db_update('rules_config')
+    ->fields(array(
+      'active' => $active,
+    ))
+    ->condition('name', $name, '=')
+    ->execute();
+}
+
 function commerce_sagepay_validate_prefix($element) {
 }
