diff --git notifications.module notifications.module
index 3affb99..a969ec8 100644
--- notifications.module
+++ notifications.module
@@ -717,7 +717,10 @@ function notifications_save_subscription(&$subscription) {
     $op = 'update';
     $result = drupal_write_record('notifications', $subscription, 'sid');
   }
-  elseif ($duplicate = notifications_get_subscriptions(array('uid' => $subscription->uid, 'type' => $subscription->type, 'event_type' => $subscription->event_type, 'module' => $subscription->module, 'send_method' => $subscription->send_method, 'send_interval' => $subscription->send_interval), $subscription->fields, TRUE)) {
+  elseif ($duplicate = notifications_get_subscriptions(array('uid' => $subscription->uid, 'type' => $subscription->type, 'event_type' => $subscription->event_type, 'module' => $subscription->module, 'send_interval' => $subscription->send_interval), $subscription->fields, TRUE)) {
+    if (!is_array($subscription->send_method)) {
+      $duplicate = notifications_get_subscriptions(array('uid' => $subscription->uid, 'type' => $subscription->type, 'event_type' => $subscription->event_type, 'module' => $subscription->module, 'send_method' => $subscription->send_method, 'send_interval' => $subscription->send_interval), $subscription->fields, TRUE);
+    }
     // We've found duplicates, resolve conflict updating first, deleting the rest
     // It is possible that we had a disabled one, this updating will fix it
     $update = array_shift($duplicate);
@@ -735,32 +738,47 @@ function notifications_save_subscription(&$subscription) {
     return notifications_save_subscription($subscription);  
   }
   else {
-    $op = 'insert';    
-    $result = drupal_write_record('notifications', $subscription);
-  }
-  
-  // If the operation has worked so far, update fields and inform other modules
-  if ($result !== FALSE) {
-    if ($op == 'update') {
-      db_query("DELETE FROM {notifications_fields} WHERE sid = %d", $subscription->sid);
-    }    
-    // There may be subscriptions with no fields, some people are coding such plug-ins.
-    if (!empty($subscription->fields)) {
-      foreach ($subscription->fields as $name => $value) {
-        if (is_array($value)) {
-          db_query("INSERT INTO {notifications_fields} (sid, field, value, intval) VALUES(%d, '%s', '%s', %d)", $subscription->sid, $value['type'], $value['value'], (int)$value['value']);
-        }
-        else { 
-          db_query("INSERT INTO {notifications_fields} (sid, field, value, intval) VALUES(%d, '%s', '%s', %d)", $subscription->sid, $name, $value, (int)$value);
+    $op = 'insert';
+    if (is_array($subscription->send_method)) {
+      foreach ($subscription->send_method as $send_method_key=>$send_method_value) {
+        $write_subscription = clone($subscription);
+        $write_subscription->send_method = $send_method_key;
+        // TODO: Should the last written result be the only value returned? Plural?
+        $result = drupal_write_record('notifications', $write_subscription);
+        if ($result != FALSE) {
+          _notifications_save_subscription_fields($write_subscription);
         }
       }
+    } else {
+      $result = drupal_write_record('notifications', $subscription);
+      if ($result != FALSE) {
+        _notifications_save_subscription_fields($subscription);
+      }
     }
-    notifications_module_invoke($op, $subscription);
   }
 
   return $result;
 }
 
+function _notifications_save_subscription_fields(&$subscription) {
+  // If the operation has worked so far, update fields and inform other modules
+  if ($op == 'update') {
+    db_query("DELETE FROM {notifications_fields} WHERE sid = %d", $subscription->sid);
+  }    
+  // There may be subscriptions with no fields, some people are coding such plug-ins.
+  if (!empty($subscription->fields)) {
+    foreach ($subscription->fields as $name => $value) {
+      if (is_array($value)) {
+        db_query("INSERT INTO {notifications_fields} (sid, field, value, intval) VALUES(%d, '%s', '%s', %d)", $subscription->sid, $value['type'], $value['value'], (int)$value['value']);
+      }
+      else { 
+        db_query("INSERT INTO {notifications_fields} (sid, field, value, intval) VALUES(%d, '%s', '%s', %d)", $subscription->sid, $name, $value, (int)$value);
+      }
+    }
+  }
+  notifications_module_invoke($op, $subscription);
+}
+
 /**
  * Get an individual subscription.
  *
diff --git notifications.pages.inc notifications.pages.inc
index 6fbf830..003952d 100644
--- notifications.pages.inc
+++ notifications.pages.inc
@@ -27,8 +27,12 @@ function notifications_user_overview($form_state, $account) {
   $send_intervals = notifications_send_intervals();
   $send_methods = _notifications_send_methods($account);
   if ($method = notifications_user_setting('send_method', $account)) {
-    if (isset($send_methods[$method])) {      
-      $status['method'] = t('Your default sending method for new subscriptions is @send_method', array('@send_method' => $send_methods[$method]));
+    if (is_array($method)) {
+        $status['method'] = format_plural(count($method), 'Your default sending method for new subscriptions is @send_method', 'Your default sending methods for new subscriptions are @send_method', array('@send_method' => implode(", ", array_intersect_key($send_methods, array_filter($method)))));
+    } else {
+      if (isset($send_methods[$method])) {
+        $status['method'] = t('Your default sending method for new subscriptions is @send_method', array('@send_method' => $send_methods[$method]));
+      }
     }
   }
   $interval = notifications_user_setting('send_interval', $account);
