diff --git a/notifications.module b/notifications.module
index 64b83af..57273a5 100644
--- a/notifications.module
+++ b/notifications.module
@@ -716,7 +716,17 @@ 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);
+      if( !$duplicate ) {
+        $result = drupal_write_record('notifications', $subscription);
+        if ($result != FALSE) {
+          _notifications_save_subscription_fields('insert', $subscription);
+        }
+        return $result;
+      }
+    }
     // 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,11 +745,29 @@ function notifications_save_subscription(&$subscription) {
   }
   else {
     $op = 'insert';    
+    if (is_array($subscription->send_method)) {
+      foreach (array_filter($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($op, $write_subscription);
+        }
+      }
+    } else {
     $result = drupal_write_record('notifications', $subscription);
+      if ($result != FALSE) {
+        _notifications_save_subscription_fields($op, $subscription);
+      }
+    }
+  }
+
+  return $result;
   }
   
+function _notifications_save_subscription_fields($op, &$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);
     }    
@@ -757,9 +785,6 @@ function notifications_save_subscription(&$subscription) {
     notifications_module_invoke($op, $subscription);
   }
 
-  return $result;
-}
-
 /**
  * Get an individual subscription.
  *
diff --git a/notifications.pages.inc b/notifications.pages.inc
index a2718c7..57f1e26 100644
--- a/notifications.pages.inc
+++ b/notifications.pages.inc
@@ -26,10 +26,14 @@ 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 (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);
   if (isset($send_intervals[$interval])) {      
     $status['interval'] = t('Your default sending interval for new subscriptions is @send_interval', array('@send_interval' => $send_intervals[$interval]));
diff --git a/notifications_lite/notifications_lite.module b/notifications_lite/notifications_lite.module
index d51849d..39ee868 100644
--- a/notifications_lite/notifications_lite.module
+++ b/notifications_lite/notifications_lite.module
@@ -99,7 +99,16 @@ function notifications_lite_add_to_queue($uid, $subject, $body = '', $action = '
   // Store row in notifications queue and for immediate sending
   notifications_lite_queue_event($event);
   notifications_module_invoke('event queued', $event);
-  notifications_send_immediate($event->eid);
+  // TODO: DRY this up from notifications.module:_notifications_queue flow
+  // Now update event counter with rows in notifications_queue or delete if no rows
+  if ($count = db_result(db_query('SELECT COUNT(*) FROM {notifications_queue} WHERE eid = %d', $event->eid))) {
+    db_query('UPDATE {notifications_event} SET counter = %d WHERE eid = %d', $count, $event->eid);
+    // If immediate sending enabled, store eid for sending on page exit.
+    notifications_send_immediate($event->eid);
+  }
+  else {
+    db_query('DELETE FROM {notifications_event} WHERE eid = %d', $event->eid);
+  }
 }
 
 /**
