diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php
index 57d828274c01594cc6c1e5487c782817add9012a..604950279520a050a817634cd028997fac6fe353 100644
--- a/include/class.mailfetch.php
+++ b/include/class.mailfetch.php
@@ -423,6 +423,25 @@ class MailFetcher {
         $newticket=true;
 
         $errors=array();
+
+        // Fetch attachments if any.
+        if($ost->getConfig()->allowEmailAttachments()
+                && ($struct = imap_fetchstructure($this->mbox, $mid))
+                && ($attachments=$this->getAttachments($struct))) {
+
+            $vars['attachments'] = array();
+            foreach($attachments as $a ) {
+                $file = array('name' => $a['name'], 'type' => $a['type']);
+
+                //Check the file  type
+                if(!$ost->isFileTypeAllowed($file))
+                    $file['error'] = 'Invalid file type (ext) for '.Format::htmlchars($file['name']);
+                else //only fetch the body if necessary TODO: Make it a callback.
+                    $file['data'] = $this->decode(imap_fetchbody($this->mbox, $mid, $a['index']), $a['encoding']);
+                $vars['attachments'][] = $file;
+            }
+        }
+
         if (($thread = ThreadEntry::lookupByEmailHeaders($vars))
                 && ($message = $thread->postEmail($vars))) {
             if ($message === true)