diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php
index f1ea77d74ac9979bdffccfd195ca76eabd98c3a9..beb427300a945b8f032a423255bfb9679c777d72 100644
--- a/include/class.mailfetch.php
+++ b/include/class.mailfetch.php
@@ -19,7 +19,6 @@ require_once(INCLUDE_DIR.'class.ticket.php');
 require_once(INCLUDE_DIR.'class.dept.php');
 require_once(INCLUDE_DIR.'class.email.php');
 require_once(INCLUDE_DIR.'class.filter.php');
-require_once(INCLUDE_DIR.'html2text.php');
 require_once(INCLUDE_DIR.'tnef_decoder.php');
 
 class MailFetcher {
@@ -441,7 +440,8 @@ class MailFetcher {
                         array('attachment', 'inline'))) {
                 $filename = $this->findFilename($part->dparameters);
             }
-            // Inline attachments without disposition.
+            // Inline attachments without disposition. NOTE that elseif is
+            // not utilized here b/c ::findFilename may return null
             if (!$filename && $part->ifparameters && $part->parameters
                     && $part->type > 0) {
                 $filename = $this->findFilename($part->parameters);
@@ -450,6 +450,13 @@ class MailFetcher {
             $content_id = ($part->ifid)
                 ? rtrim(ltrim($part->id, '<'), '>') : false;
 
+            // Some mail clients / servers (like Lotus Notes / Domino) will
+            // send images without a filename. For such a case, generate a
+            // random filename for the image
+            if (!$filename && $content_id && $part->type == 5) {
+                $filename = 'image-'.Misc::randCode(4).'.'.strtolower($part->subtype);
+            }
+
             if($filename) {
                 return array(
                         array(
diff --git a/include/class.mailparse.php b/include/class.mailparse.php
index 0ec0b4f190217b90c633f220f6440a7c89e625ce..2b05900a87553cc6936b035da59f019dbe1e2d1b 100644
--- a/include/class.mailparse.php
+++ b/include/class.mailparse.php
@@ -366,10 +366,19 @@ class Mail_Parse {
             // Support attachments that do not specify a content-disposition
             // but do specify a "name" parameter in the content-type header.
             elseif (isset($part->ctype_parameters['name']))
-                $filename=$part->ctype_parameters['name'];
+                $filename = $part->ctype_parameters['name'];
             elseif (isset($part->ctype_parameters['name*']))
                 $filename = Format::decodeRfc5987(
                     $part->ctype_parameters['name*']);
+
+            // Some mail clients / servers (like Lotus Notes / Domino) will
+            // send images without a filename. For such a case, generate a
+            // random filename for the image
+            elseif (isset($part->headers['content-id'])
+                    && $part->headers['content-id']
+                    && 0 === strcasecmp($part->ctype_primary, 'image'))
+                $filename = 'image-'.Misc::randCode(4).'.'
+                    .strtolower($part->ctype_secondary);
             else
                 // Not an attachment?
                 return false;