--- mailhandler.retrieve.inc.orig	2008-12-27 23:55:45.000000000 +0530
+++ mailhandler.retrieve.inc	2008-12-28 02:35:17.000000000 +0530
@@ -55,7 +55,7 @@ function mailhandler_admin_retrieve($mid
 function mailhandler_get_part($stream, $msg_number, $mime_type, $structure = false, $part_number = false) {
 
   if (!$structure) {
-    $structure = imap_fetchstructure($stream, $msg_number);
+    $structure = imap_fetchstructure($stream, $msg_number, FT_UID);
   }
   if ($structure) {
     foreach ($structure->parameters as $parameter) {
@@ -68,7 +68,7 @@ function mailhandler_get_part($stream, $
       if (!$part_number) {
         $part_number = '1';
       }
-      $text = imap_fetchbody($stream, $msg_number, $part_number);
+      $text = imap_fetchbody($stream, $msg_number, $part_number, FT_UID);
       if ($structure->encoding == ENCBASE64) {
         return drupal_convert_to_utf8(imap_base64($text), $encoding);
       }
@@ -116,7 +116,7 @@ function mailhandler_get_parts($stream, 
   $parts = array();
 
   // Load Structure.
-  if (!$structure && !$structure = imap_fetchstructure($stream, $msg_number)) {
+  if (!$structure && !$structure = imap_fetchstructure($stream, $msg_number, FT_UID)) {
     watchdog('mailhandler', 'Could not fetch structure for message number %msg_number', array('%msg_number' => $msg_number), WATCHDOG_NOTICE);
     return $parts;
   }
@@ -183,7 +183,7 @@ function mailhandler_get_parts($stream, 
   }
 
   // Retrieve part and convert MIME encoding to UTF-8
-  if(!$part->data = imap_fetchbody($stream, $msg_number, $part_number)) {
+  if(!$part->data = imap_fetchbody($stream, $msg_number, $part_number, FT_UID)) {
     watchdog('mailhandler', 'No Data!!', array(), WATCHDOG_ERROR);
     return $parts;
   }
@@ -594,7 +594,7 @@ function mailhandler_get_unread_messages
         continue;
       }
 
-      $unread_messages[] = $i;
+      $unread_messages[] = imap_uid($result, $i);
     }
   }
 
@@ -602,7 +602,6 @@ function mailhandler_get_unread_messages
   return $unread_messages;
 }
 
-
 function mailhandler_retrieve_message($mailbox, $i, &$context) {
 
   mailhandler_switch_user();
@@ -611,7 +610,7 @@ function mailhandler_retrieve_message($m
 
   if ($result) {
 
-      $header = imap_header($result, $i);
+      $header = imap_header($result, imap_msgno($result, $i));
       // Initialize the subject in case it's missing.
       if (!isset($header->subject)) {
         $header->subject = '';
@@ -673,7 +672,7 @@ function mailhandler_retrieve_message($m
       }
       // don't delete while we're only getting new messages
       if ($mailbox['delete_after_read']) {
-        imap_delete($result, $i);
+        imap_delete($result, $i, FT_UID);
       }
 
       // switch back to original user
