diff --git a/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/DepositDataMapper.java b/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/DepositDataMapper.java
index 5964b4cefa41a0563722c002c599f07ccdd6514f..15999aefcb8a5542fb96f1826dd27b9123288307 100644
--- a/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/DepositDataMapper.java
+++ b/intelliform-adapter/src/main/java/de/ozgcloud/eingang/intelliform/DepositDataMapper.java
@@ -25,6 +25,7 @@ package de.ozgcloud.eingang.intelliform;
 
 import java.io.IOException;
 import java.util.Collection;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -90,12 +91,14 @@ class DepositDataMapper {
 				.build();
 	}
 
-	private Map<String, IncomingFile> mapDepositAttachmentsToIncomingFiles(DepositData depositData) {
+	Map<String, IncomingFile> mapDepositAttachmentsToIncomingFiles(DepositData depositData) {
 		return depositData.getAttachments()
 				.stream()
-				.collect(
-						Collectors.toMap(Attachment::getId, this::mapAttachmentToIncomingFile)
-				);
+				.collect(Collectors.toMap(
+						Attachment::getId,
+						this::mapAttachmentToIncomingFile,
+						(u, v) -> v,
+						LinkedHashMap::new));
 	}
 
 	IncomingFile mapAttachmentToIncomingFile(Attachment attachment) {
diff --git a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java
index d189c43a0706cbc6aec1f1cff5cab0c65d156763..5249212400e77f7a6a1b2c3913d185363fc441be 100644
--- a/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java
+++ b/intelliform-adapter/src/test/java/de/ozgcloud/eingang/intelliform/DepositDataMapperTest.java
@@ -136,6 +136,36 @@ class DepositDataMapperTest {
 
 	}
 
+	@DisplayName("map deposit attachments to incoming files")
+	@Nested
+	class TestMapDepositAttachmentsToIncomingFiles {
+		@DisplayName("should keep entry order")
+		@Test
+		void shouldKeepEntryOrder() {
+			var depositData = DepositDataTestFactory.create(ATTACHMENTS);
+
+			var incomingFileMap = mapper.mapDepositAttachmentsToIncomingFiles(depositData);
+
+			var keys = incomingFileMap.keySet().stream().toList();
+			assertThat(keys).containsExactly(XML_ATTACHMENT_ID, PDF_ATTACHMENT_ID, PNG_ATTACHMENT_ID);
+		}
+
+		@DisplayName("should keep last entry for duplicate key")
+		@Test
+		void shouldKeepLastEntryForDuplicateKey() {
+			var depositData = DepositDataTestFactory.create(List.of(
+					AttachmentTestFactory.createXmlDaten(),
+					AttachmentTestFactory.createPdf(),
+					AttachmentTestFactory.createXmlDaten()
+			));
+
+			var incomingFileMap = mapper.mapDepositAttachmentsToIncomingFiles(depositData);
+
+			var keys = incomingFileMap.keySet().stream().toList();
+			assertThat(keys).containsExactly(XML_ATTACHMENT_ID, PDF_ATTACHMENT_ID);
+		}
+	}
+
 	@DisplayName("map attachment to incoming file")
 	@Nested
 	class TestMapAttachmentToIncomingFile {