diff --git a/lib/Model/IMAPMessage.php b/lib/Model/IMAPMessage.php
index 5481ecddd174b6b37a099aa86889a56633f68757..46005a0c3a59ceacd780a59869b696a8dc9b36fc 100644
--- a/lib/Model/IMAPMessage.php
+++ b/lib/Model/IMAPMessage.php
@@ -414,7 +414,8 @@ class IMAPMessage implements IMessage, JsonSerializable {
 				'fileName' => $filename,
 				'mime' => $p->getType(),
 				'size' => $p->getBytes(),
-				'cid' => $p->getContentId()
+				'cid' => $p->getContentId(),
+				'disposition' => $p->getDisposition()
 			];
 			return;
 		}
diff --git a/src/components/Composer.vue b/src/components/Composer.vue
index 7404c77eed024103e1158c75e5844771909bd412..c4736dbd6a786cf88d3dae0243a56079390b1cdc 100644
--- a/src/components/Composer.vue
+++ b/src/components/Composer.vue
@@ -463,7 +463,9 @@ export default {
 
 		// Add attachments in case of forward
 		if (this.forwardFrom?.attachments !== undefined) {
-			this.forwardFrom.attachments.map(att => {
+			// We filter attachments with contentDisposition header set to 'inline' as theyr are rendered
+			// in the HTML body
+			this.forwardFrom.attachments.filter(att => att.disposition !== 'inline').forEach(att => {
 				this.attachments.push({
 					fileName: att.fileName,
 					displayName: trimStart('/', att.fileName),
diff --git a/src/components/Message.vue b/src/components/Message.vue
index 8e42c51a7140e717e3976c6706540be1505e2cf7..817d3c97e20aa61163da55f7fb6ac9ed1e5b27dc 100644
--- a/src/components/Message.vue
+++ b/src/components/Message.vue
@@ -38,7 +38,7 @@
 			:body="message.body"
 			:signature="message.signature"
 			:message="message" />
-		<Popover v-if="message.attachments[0]" class="attachment-popover">
+		<Popover v-if="message.flags.hasAttachments" class="attachment-popover">
 			<Actions slot="trigger">
 				<ActionButton icon="icon-public icon-attachment">
 					{{ t('mail', 'Attachments') }}