diff --git a/src/main/resources/xslt/manuscript2oai_pica_h_xml.xsl b/src/main/resources/xslt/manuscript2oai_pica_h_xml.xsl
index 33dc7b9efca9ba1dd9e43e91581e0294c55d074f..63d8266d83a3510450186d2bb18078998d293b5a 100644
--- a/src/main/resources/xslt/manuscript2oai_pica_h_xml.xsl
+++ b/src/main/resources/xslt/manuscript2oai_pica_h_xml.xsl
@@ -165,11 +165,17 @@
   <xsl:template name="pica_010at">
     <xsl:param name="metadata_native"/>
 
-    <xsl:if test="$metadata_native/def.mss08/mss08[@xml:lang='x-iso639-2']">
+    <!--
+      https://git.sc.uni-leipzig.de/mycore_applications/orient/orient-digital-issues/-/issues/1087
+      some entries in MyMssLanguage have identical ISO codes. Thus, we have to use distinct values
+    -->
+    <xsl:variable name="iso_codes" select="distinct-values($metadata_native/def.mss08/mss08[@xml:lang='x-iso639-2'])"/>
+
+    <xsl:if test="count($iso_codes) > 0">
       <pica:datafield tag="010@">
-        <xsl:for-each select="$metadata_native/def.mss08/mss08[@xml:lang='x-iso639-2']">
+        <xsl:for-each select="$iso_codes">
           <pica:subfield code="a">
-            <xsl:value-of select="text()"/>
+            <xsl:value-of select="."/>
           </pica:subfield>
         </xsl:for-each>
       </pica:datafield>
diff --git a/src/test/java/de/unileipzig/urz/mymss/test/interfaces/kxplus/Manuscript2PICAHTest.java b/src/test/java/de/unileipzig/urz/mymss/test/interfaces/kxplus/Manuscript2PICAHTest.java
index 7f01fcc1a4018a4ec0aaaa0646b1d0901455095b..c5d95aae331664308c14608ac1ba8f522f7d7720 100644
--- a/src/test/java/de/unileipzig/urz/mymss/test/interfaces/kxplus/Manuscript2PICAHTest.java
+++ b/src/test/java/de/unileipzig/urz/mymss/test/interfaces/kxplus/Manuscript2PICAHTest.java
@@ -20,6 +20,7 @@ import java.util.List;
 import java.util.Map;
 
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.is;
 
 public class Manuscript2PICAHTest extends MyMssCommonTest {
@@ -91,7 +92,8 @@ public class Manuscript2PICAHTest extends MyMssCommonTest {
         final List<Element> elements = reader.getDatafield(picaRecord, "010@");
 
         assertThat(elements.size(), is(1));
-        assertThat(reader.getFirstSubfieldContent(elements.get(0), "a").orElseThrow(), is("ara"));
+        assertThat(reader.getSubfieldContent(elements.get(0), "a"),
+            contains("ara", "ira"));
     }
 
     @Test
@@ -201,9 +203,12 @@ public class Manuscript2PICAHTest extends MyMssCommonTest {
         final MCRObject manuscript = new MCRObject(this.manuscript);
 
         // set language to LANG0001 which has a x-iso639-2 entry
-        final MCRMetaClassification lang = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0001");
+        final MCRMetaClassification lang1 = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0001");
+        final MCRMetaClassification lang2 = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0164");
+        final MCRMetaClassification lang3 = new MCRMetaClassification("mss08", 0, null, "MyMssLanguage", "LANG0171");
+
         manuscript.getMetadata().setMetadataElement(
-            new MCRMetaElement(MCRMetaClassification.class, "def.mss08", false, true, List.of(lang)));
+            new MCRMetaElement(MCRMetaClassification.class, "def.mss08", false, true, List.of(lang1, lang2, lang3)));
 
         // add a subject with two GND mappings to test for correct export
         final MCRMetaClassification clazz = new MCRMetaClassification("mss45", 0, null, "MyMssSubjectMatter",