--- simplenews.module	2009-01-21 09:22:55.000000000 +0100
+++ simplenews.module.new	2009-01-21 09:22:35.000000000 +0100
@@ -1695,6 +1695,7 @@
       // Store spool id for the spool status update.
       if ($result) {
         $mail_sent[] = $key;
+        simplenews_update_spool($key, SIMPLENEWS_SPOOL_SEND);
       }
 
       // Check every n emails if we exceed the limit.
@@ -1712,9 +1713,6 @@
     }
 
     // Update message status in the spool as sent and update newsletter status.
-    if (!empty($mail_sent)) {
-      simplenews_update_spool($mail_sent, SIMPLENEWS_SPOOL_SEND);
-    }
     simplenews_send_status_update();
 
     // Report sent result and elapsed time. On Windows systems retrusage() is
@@ -1787,6 +1785,9 @@
  * @param string $status New status (0 = hold, 1 = pending, 2 = send)
  */
 function simplenews_update_spool($msids, $status) {
+  if(!is_array($msids)){
+    $msids=array($msids);
+  }
   $params[] = $status;
   $params[] = time();
   $params = array_merge($params, $msids);
