diff --git a/include/class.file.php b/include/class.file.php
index c0dbc30563827462079e92755358bdd40e77c9d3..a2ce70bfa1a56b33641eda172b40651619e067fb 100644
--- a/include/class.file.php
+++ b/include/class.file.php
@@ -394,8 +394,9 @@ class AttachmentFile {
                 $file['size'] = $size;
             // Prefer mb_strlen, because mbstring.func_overload will
             // automatically prefer it if configured.
-            elseif (function_exists('mb_strlen'))
+            elseif (extension_loaded('mbstring'))
                 $file['size'] = mb_strlen($file['data'], '8bit');
+            // bootstrap.php include a compat version of mb_strlen
             else
                 $file['size'] = strlen($file['data']);
 
diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php
index 644d866637383fb9faadfce643616a280e8e2d52..0b739e7c82eeb4a9a1668a096effcbc8ade8616e 100644
--- a/include/class.mailfetch.php
+++ b/include/class.mailfetch.php
@@ -462,6 +462,7 @@ class MailFetcher {
                         array(
                             'name'  => $this->mime_decode($filename),
                             'type'  => $this->getMimeType($part),
+                            'size' => $part->bytes ?: null,
                             'encoding' => $part->encoding,
                             'index' => ($index?$index:1),
                             'cid'   => $content_id,
diff --git a/include/class.mailparse.php b/include/class.mailparse.php
index f3feaf25d5e2678a4be426ab36e898dcd48782a2..378c68c1959e2a5c6ff4d442a9b8282c43c7aee3 100644
--- a/include/class.mailparse.php
+++ b/include/class.mailparse.php
@@ -396,6 +396,13 @@ class Mail_Parse {
             else
                 $file['data'] = $part->body;
 
+            // Capture filesize in order to support de-duplication
+            if (extension_loaded('mbstring'))
+                $file['size'] = mb_strlen($file['data'], '8bit');
+            // bootstrap.php include a compat version of mb_strlen
+            else
+                $file['size'] = strlen($file['data']);
+
             if(!$this->decode_bodies && $part->headers['content-transfer-encoding'])
                 $file['encoding'] = $part->headers['content-transfer-encoding'];