diff --git a/payment/payment.info b/payment/payment.info
index 43bea9f..80a506b 100644
--- a/payment/payment.info
+++ b/payment/payment.info
@@ -12,5 +12,6 @@ files[] = views/PaymentViewsHandlerFieldPaymentMethodOperations.inc
 files[] = views/PaymentViewsHandlerFieldPaymentStatusTitle.inc
 files[] = views/PaymentViewsHandlerFieldPaymentOperations.inc
 files[] = views/PaymentViewsHandlerFieldTranslatableString.inc
+files[] = views/PaymentViewsHandlerFilterPaymentMethodControllerTitle.inc
 files[] = views/PaymentViewsHandlerFilterPaymentMethodTitle.inc
 files[] = views/PaymentViewsHandlerFilterPaymentStatusItemStatus.inc
\ No newline at end of file
diff --git a/payment/payment.rules.inc b/payment/payment.rules.inc
index 2efa630..af4ccc0 100644
--- a/payment/payment.rules.inc
+++ b/payment/payment.rules.inc
@@ -341,6 +341,7 @@ function payment_rules_options_list_payment_uses_payment_method_type() {
   foreach (payment_method_controller_load_multiple() as $payment_method_controller) {
     $options[$payment_method_controller->name] = $payment_method_controller->title;
   }
+  asort($options);
 
   return $options;
 }
diff --git a/payment/payment.ui.inc b/payment/payment.ui.inc
index a7a5117..3a1aec5 100644
--- a/payment/payment.ui.inc
+++ b/payment/payment.ui.inc
@@ -1148,6 +1148,23 @@ function payment_method_options() {
 }
 
 /**
+ * Return payment method controllerss for use in form elements.
+ *
+ * @todo In Payment 7.x-2.x merge
+ * payment_rules_options_list_payment_uses_payment_method_type() into this
+ * function.
+ *
+ * @return array
+ *   Keys are payment method controller class names. Values are controller
+ *   titles.
+ */
+function payment_method_controller_options() {
+  module_load_include('inc', 'payment', 'payment.rules');
+
+  return payment_rules_options_list_payment_uses_payment_method_type();
+}
+
+/**
  * Implements form build callback: global configuration form.
  */
 function payment_form_global_configuration(array $form, array &$form_state) {
diff --git a/payment/views/PaymentViewsHandlerFilterPaymentMethodControllerTitle.inc b/payment/views/PaymentViewsHandlerFilterPaymentMethodControllerTitle.inc
new file mode 100644
index 0000000..97172f8
--- /dev/null
+++ b/payment/views/PaymentViewsHandlerFilterPaymentMethodControllerTitle.inc
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Contains class PaymentViewsHandlerFilterPaymentMethodControllerTitle.
+ */
+
+/**
+ * Filter by specific payment method controller, but show users their titles.
+ */
+class PaymentViewsHandlerFilterPaymentMethodControllerTitle extends views_handler_filter_in_operator {
+
+  /**
+   * Implements views_handler_filter_in_operator::get_value_options().
+   */
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_options = payment_method_controller_options();
+    }
+  }
+}
diff --git a/payment/views/payment.views.inc b/payment/views/payment.views.inc
index f36be1c..84b0558 100644
--- a/payment/views/payment.views.inc
+++ b/payment/views/payment.views.inc
@@ -272,7 +272,7 @@ function payment_views_data_alter(&$data) {
       'handler' => 'views_handler_sort',
     ),
     'filter' => array(
-      'handler' => 'views_handler_filter_string',
+      'handler' => 'PaymentViewsHandlerFilterPaymentMethodControllerTitle',
     ),
     'argument' => array(
       'handler' => 'views_handler_argument_string',
