diff --git a/include/class.mailparse.php b/include/class.mailparse.php
index 8d162e52a6d9182b6cca5284ff061538b4124ff9..c61573d463e78e3a2f7137d7bb9991ec14cd7b76 100644
--- a/include/class.mailparse.php
+++ b/include/class.mailparse.php
@@ -164,6 +164,11 @@ class Mail_Parse {
         return $data;
     }
 
+     
+    function mime_encode($text, $charset=null, $encoding='utf-8') {
+        return Format::encode($text, $charset, $encoding);
+    }
+
     function getAttachments($part=null){
 
         if($part==null)
@@ -173,10 +178,20 @@ class Mail_Parse {
                 && (!strcasecmp($part->disposition,'attachment') 
                     || !strcasecmp($part->disposition,'inline') 
                     || !strcasecmp($part->ctype_primary,'image'))){
+            
             if(!($filename=$part->d_parameters['filename']) && $part->d_parameters['filename*'])
                 $filename=$part->d_parameters['filename*']; //Do we need to decode?
+           
+            $file=array(
+                    'name'  => $filename, 
+                    'type'  => strtolower($part->ctype_primary.'/'.$part->ctype_secondary),
+                    'data'  => $this->mime_encode($part->body, $part->ctype_parameters['charset'])
+                    );
+
+            if(!$this->decode_bodies && $part->headers['content-transfer-encoding'])
+                $file['encoding'] = $part->headers['content-transfer-encoding'];
 
-            return array(array('filename'=>$filename,'body'=>$part->body));
+            return array($file);
         }
 
         $files=array();