--- mailhandler.retrieve.inc-old	2009-10-03 19:21:19.421875000 -0400
+++ mailhandler.retrieve.inc	2009-10-03 19:21:19.421875000 -0400
@@ -616,6 +616,7 @@ function mailhandler_get_unread_messages
 
       $unread_messages[] = imap_uid($result, $i);
     }
+    imap_close($result, CL_EXPUNGE);
   }
 
   return $unread_messages;
@@ -732,19 +733,16 @@ function mailhandler_retrieve_message(&$
  */
 function mailhandler_cron_retrieve($mailbox) {
 
-  if ($result = mailhandler_open_mailbox($mailbox)) {
-    // Find out how many messages need retrieval
-    $new_messages = mailhandler_get_unread_messages($mailbox);
-
-    // Initialise counters for maximum message retrieval
-    $max_messages = variable_get('mailhandler_max_retrieval', 0);
-    $retrieved_messages = 0;
-
-    // Begin retrieval of messages
-    while ($new_messages && (!$max_messages || $retrieved_messages < $max_messages)) {
-      mailhandler_retrieve_message($result, $mailbox, array_shift($new_messages), $context);
-      $retrieved_messages++;
-    }
-    imap_close($result, CL_EXPUNGE);
+  // Find out how many messages need retrieval
+  $new_messages = mailhandler_get_unread_messages($mailbox);
+
+  // Initialise counters for maximum message retrieval
+  $max_messages = variable_get('mailhandler_max_retrieval', 0);
+  $retrieved_messages = 0;
+
+  // Begin retrieval of messages
+  while ($new_messages && (!$max_messages || $retrieved_messages < $max_messages)) {
+    mailhandler_retrieve_message($result, $mailbox, array_shift($new_messages), $context);
+    $retrieved_messages++;
   }
 }
