Index: simplenews.subscription.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/simplenews/simplenews.subscription.inc,v
retrieving revision 1.2.2.8
diff -u -p -r1.2.2.8 simplenews.subscription.inc
--- simplenews.subscription.inc	21 Aug 2008 09:46:23 -0000	1.2.2.8
+++ simplenews.subscription.inc	15 Feb 2009 14:47:54 -0000
@@ -55,7 +55,10 @@ function simplenews_subscription_manager
 function simplenews_subscription_manager_form_submit($form, &$form_state) {
   switch ($form_state['values']['op']) {
     case t('Update'):
-      foreach ($form_state['values']['newsletters'] as $tid => $checked) {
+      // We first subscribe, then unsubscribe. This prevents deletion of subscriptions
+      // when unsubscribed from the
+      $newsletters = arsort($form_state['values']['newsletters']);
+      foreach ($newsletters as $tid => $checked) {
         if ($checked) {
           simplenews_subscribe_user($form_state['values']['mail'], $tid, FALSE);
         }
