diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java
index 8d9f07cf157a20eae9795b7a09bccb6ab5ccb868..bae3987d8513165869044dbe5f702ac13160b3df 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java
@@ -2,9 +2,9 @@ package de.ozgcloud.eingang.semantik.enginebased.dfoerdermittel;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
@@ -109,17 +109,26 @@ public class DFoerdermittelEngineBasedSemantikAdapter implements EngineBasedSema
 				.orElse(formData);
 	}
 
-	private ZustaendigeStelle addOrganisationsEinheitId(String orgaId, List<ZustaendigeStelle> zustaendigeStelleList) {
+	private ZustaendigeStelle addOrganisationsEinheitId(String orgaId, Collection<ZustaendigeStelle> zustaendigeStelles) {
 		ZustaendigeStelle.ZustaendigeStelleBuilder zustaendigeStelleBuilder;
-		if (Objects.isNull(zustaendigeStelleList) || zustaendigeStelleList.isEmpty()) {
+		if (Objects.isNull(zustaendigeStelles) || zustaendigeStelles.isEmpty()) {
 			zustaendigeStelleBuilder = ZustaendigeStelle.builder();
 		} else {
-			zustaendigeStelleBuilder = zustaendigeStelleList.getFirst().toBuilder();
+			var zustaendigeStellesIterator = zustaendigeStelles.iterator();
+			var zustaendigeStelle = zustaendigeStellesIterator.next();
+			if (zustaendigeStellesIterator.hasNext()) {
+				logErrorForMoreThanOneZustaendigeStelle();
+			}
+			zustaendigeStelleBuilder = zustaendigeStelle.toBuilder();
 		}
 
 		return zustaendigeStelleBuilder.organisationseinheitenId(orgaId).build();
 	}
 
+	void logErrorForMoreThanOneZustaendigeStelle() {
+		LOG.error("Expect at most one existing ZustaendigeStelle for DFoerdermittel. Continuing by using the first one.");
+	}
+
 	FormData addFormName(FormData formData) {
 		return mapWithModifiedHeader(formData, headerBuilder -> headerBuilder.formName(
 				getNonEmptyFachnachrichtValueByKey(formData, KEY_FORM_NAME)
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java
index 875c8c91fa584b34be8396795a54981e903048ba..698b665b58d345e68e98052b28ff257b387b8a52 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapterTest.java
@@ -26,6 +26,7 @@ import de.ozgcloud.eingang.common.formdata.IncomingFile;
 import de.ozgcloud.eingang.common.formdata.PostfachAddressTestFactory;
 import de.ozgcloud.eingang.common.formdata.ServiceKontoTestFactory;
 import de.ozgcloud.eingang.common.formdata.StringBasedIdentifier;
+import de.ozgcloud.eingang.common.formdata.ZustaendigeStelleTestFactory;
 import de.ozgcloud.eingang.semantik.common.ServiceKontoFactory;
 
 class DFoerdermittelEngineBasedSemantikAdapterTest {
@@ -216,12 +217,66 @@ class DFoerdermittelEngineBasedSemantikAdapterTest {
 
 	@Nested
 	class TestAddOrganisationsEinheitId {
-		@Test
-		void shouldHaveOrganisationsEinheitId() {
-			var formData = adapter.addOrganisationsEinheitId(DFoerdermittelFormDataTestFactory.create());
 
-			var organisationseinheitenId = formData.getZustaendigeStelles().getFirst().getOrganisationseinheitenId();
-			assertThat(organisationseinheitenId).isEqualTo(ORGANISATIONS_EINHEIT_ID);
+		@DisplayName("with no existing zustaendige stelles")
+		@Nested
+		class TestWithNoExistingZustaendigeStelles {
+			@Test
+			void shouldHaveOrganisationsEinheitId() {
+				var inputFormData = DFoerdermittelFormDataTestFactory.createBuilder()
+						.clearZustaendigeStelles()
+						.build();
+
+				var formData = adapter.addOrganisationsEinheitId(inputFormData);
+
+				assertThat(formData.getZustaendigeStelles())
+						.extracting("organisationseinheitenId")
+						.containsExactly(ORGANISATIONS_EINHEIT_ID);
+			}
+		}
+
+		@DisplayName("with one existing zustaendige stelle")
+		@Nested
+		class TestWithOneExistingZustaendigeStelle {
+			@Test
+			void shouldHaveOrganisationsEinheitId() {
+				var formData = adapter.addOrganisationsEinheitId(DFoerdermittelFormDataTestFactory.create());
+
+				assertThat(formData.getZustaendigeStelles())
+						.extracting("organisationseinheitenId")
+						.containsExactly(ORGANISATIONS_EINHEIT_ID);
+			}
+		}
+
+		@DisplayName("with two existing zustaendige stelles")
+		@Nested
+		class TestWithTwoExistingZustaendigeStelles {
+
+			private FormData inputFormData;
+
+			@BeforeEach
+			void setup() {
+				inputFormData = DFoerdermittelFormDataTestFactory.createBuilder()
+						.zustaendigeStelle(ZustaendigeStelleTestFactory.create())
+						.build();
+			}
+
+			@Test
+			void shouldHaveOrganisationsEinheitId() {
+				var formData = adapter.addOrganisationsEinheitId(inputFormData);
+
+				assertThat(formData.getZustaendigeStelles())
+						.extracting("organisationseinheitenId")
+						.containsExactly(ORGANISATIONS_EINHEIT_ID);
+			}
+
+			@DisplayName("should log error for more than one zustaendige stelle")
+			@Test
+			void shouldLogErrorForMoreThanOneZustaendigeStelle() {
+				adapter.addOrganisationsEinheitId(inputFormData);
+
+				verify(adapter).logErrorForMoreThanOneZustaendigeStelle();
+			}
 		}
 	}
 
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java
index 8b8c9bf4103b13f085a7910361925a11e7b90297..7bd4cc6a52d36405595a47500be02c2919066c6f 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelFormDataTestFactory.java
@@ -8,6 +8,7 @@ import java.util.function.Predicate;
 import java.util.stream.IntStream;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.FormDataTestFactory;
 import de.ozgcloud.eingang.common.formdata.FormHeaderTestFactory;
 import lombok.Builder;
 
@@ -35,7 +36,7 @@ class DFoerdermittelFormDataTestFactory {
 	}
 
 	static FormData.FormDataBuilder createBuilderWithFachnachricht(Fachnachricht fachnachricht) {
-		return FormData.builder()
+		return FormDataTestFactory.createBuilder()
 				.header(FormHeaderTestFactory.create())
 				.formData(Map.of("Fachnachricht", createFachnachrichtMapWithFachnachricht(fachnachricht)));
 	}