Index: includes/handlers/gateways/pay_method_gateway.inc
===================================================================
--- includes/handlers/gateways/pay_method_gateway.inc	(revision 1651)
+++ includes/handlers/gateways/pay_method_gateway.inc	(working copy)
@@ -74,6 +74,8 @@
     $prefix2 = substr($this->cc_number, 0, 2);
     $prefix3 = substr($this->cc_number, 0, 3);
     $prefix4 = substr($this->cc_number, 0, 4);
+    $prefix5 = substr($this->cc_number, 0, 5);
+    $prefix6 = substr($this->cc_number, 0, 6);
 
    /**
     * References: http://www.beachnet.com/~hstiles/cardtype.html
@@ -120,6 +122,12 @@
       case 6:
         // Discover: prefix 6011, length 16
         if ($prefix4 == 6011) $this->cc_type = 'discover';
+        // Laser: prefix 6304 or 6706 or 6709, length 19
+        if ($prefix4 == 6304 || $prefix4 == 6706 || $prefix == 6709) $this->cc_type = 'laser';
+        // Maestro/Switch: prefix 6334 00 to 6334 49
+        if ($prefix4 == 6334 && $prefix6 <= 633449) $this->cc_type = 'maestro';
+        // Solo: prefix 6334 50 to 6334 99
+        if ($prefix4 == 6334 && $prefix6 >= 633450) $this->cc_type = 'solo';
         break;
     }
   }
@@ -191,6 +199,10 @@
         'mc'   => t('Mastercard'),
         'amex' => t('American Express'),
         'discover' => t('Discover'),
+        'laser' => t('Laser'),
+        'maestro' => t('Maestro / Switch'),
+        'diners' => t('Diners'),
+        'solo' => t('Solo'),
       );
     }
     if ($this->gateway_supports_ach) {
