diff --git a/docs/hooks.php b/docs/hooks.php
index 5173181..2f1b9c1 100644
--- a/docs/hooks.php
+++ b/docs/hooks.php
@@ -1020,6 +1020,20 @@ function hook_payment_method() {
 }
 
 /**
+ * Alter payment methods.
+ *
+ * @param $methods
+ *   Payment methods passed by reference.
+ */
+function hook_payment_method_alter(&$methods) {
+  // Change the title of all methods.
+  foreach ($methods as &$method) {
+    // $method was passed by reference.
+    $method['title'] = t('Altered method @original', array('@original' => $method['title']));
+  }
+}
+
+/**
  * Performs actions on product classes.
  *
  * @param $type
diff --git a/payment/uc_payment/uc_payment.module b/payment/uc_payment/uc_payment.module
index d7d8f7d..a394e4e 100644
--- a/payment/uc_payment/uc_payment.module
+++ b/payment/uc_payment/uc_payment.module
@@ -748,6 +748,10 @@ function _payment_method_list($action = NULL) {
   }
 
   $methods = module_invoke_all('payment_method');
+
+  // Allow other modules to alter the payment methods.
+  drupal_alter('payment_method', $methods);
+  
   foreach ($methods as $i => $value) {
     $methods[$i]['checkout'] = variable_get('uc_payment_method_'. $methods[$i]['id'] .'_checkout', $methods[$i]['checkout']);
     $methods[$i]['weight'] = variable_get('uc_payment_method_'. $methods[$i]['id'] .'_weight', $methods[$i]['weight']);
