diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php
index c4ecd0e7bf07d988d77f57d9eff2e1826e797af0..2950e7d14124f61461be2d9709b05a8c56246ed0 100644
--- a/include/class.mailfetch.php
+++ b/include/class.mailfetch.php
@@ -346,10 +346,15 @@ class MailFetcher {
 
         // Ensure we have a message-id. If unable to read it out of the
         // email, use the hash of the entire email headers
-        if (!$header['mid'] && $header['header'])
-            if (!($header['mid'] = Mail_Parse::findHeaderEntry($header['header'],
-                    'message-id')))
+        if (!$header['mid'] && $header['header']) {
+            $header['mid'] = Mail_Parse::findHeaderEntry($header['header'],
+                    'message-id');
+
+            if (is_array($header['mid']))
+                $header['mid'] = array_pop(array_filter($header['mid']));
+            if (!$header['mid'])
                 $header['mid'] = '<' . md5($header['header']) . '@local>';
+        }
 
         return $header;
     }
diff --git a/include/class.mailparse.php b/include/class.mailparse.php
index 969cc56e425771702fd404a679d2d4c337468507..f8209f39589024cb72315552f971b94c07c55358 100644
--- a/include/class.mailparse.php
+++ b/include/class.mailparse.php
@@ -242,8 +242,11 @@ class Mail_Parse {
     }
 
     function getMessageId(){
-        if (!($mid = $this->struct->headers['message-id']))
+        if (($mid = $this->struct->headers['message-id']) && is_array($mid))
+            $mid = array_pop(array_filter($mid));
+        if (!$mid)
             $mid = sprintf('<%s@local>', md5($this->getHeader()));
+
         return $mid;
     }
 
diff --git a/include/class.thread.php b/include/class.thread.php
index 019cd8b65df15eafea32e5db56799698f83fc482..d56b16a9fb01f7ff10a130cb79c80eb675fba8fa 100644
--- a/include/class.thread.php
+++ b/include/class.thread.php
@@ -803,7 +803,8 @@ Class ThreadEntry {
 
     function saveEmailInfo($vars) {
 
-        if(!$vars || !$vars['mid'])
+        // Don't save empty message ID
+        if (!$vars || !$vars['mid'])
             return 0;
 
         $this->ht['email_mid'] = $vars['mid'];