diff --git a/modules/core/lib/Auth/Process/AttributeMap.php b/modules/core/lib/Auth/Process/AttributeMap.php
index cedde6877a536992a6b8e6c312f88f1b487efa85..7992f8b69d45163974ebc21096e7bdacec83087b 100644
--- a/modules/core/lib/Auth/Process/AttributeMap.php
+++ b/modules/core/lib/Auth/Process/AttributeMap.php
@@ -135,6 +135,9 @@ class AttributeMap extends \SimpleSAML\Auth\ProcessingFilter
                     }
                 }
             } else {
+                if (array_key_exists($name, $mapped_attributes)) {
+                    continue;
+                }
                 $mapped_attributes[$name] = $values;
             }
         }
diff --git a/tests/modules/core/lib/Auth/Process/AttributeMapTest.php b/tests/modules/core/lib/Auth/Process/AttributeMapTest.php
index 7a14dc76c4a944c7dac0db8033431a998c9d87e4..64ca49232aa3bfae4f1a9f5a1fc06062bbe94f2d 100644
--- a/tests/modules/core/lib/Auth/Process/AttributeMapTest.php
+++ b/tests/modules/core/lib/Auth/Process/AttributeMapTest.php
@@ -199,4 +199,46 @@ class AttributeMapTest extends TestCase
         $this->setExpectedException('\Exception');
         self::processFilter($config, $request);
     }
+
+    public function testOverwrite()
+    {
+        $config = [
+            'attribute1' => 'attribute2',
+        ];
+        $request = [
+            'Attributes' => [
+                'attribute1' => ['value1'],
+                'attribute2' => ['value2'],
+            ],
+        ];
+
+        $processed = self::processFilter($config, $request);
+        $result = $processed['Attributes'];
+        $expected = [
+            'attribute2' => ['value1'],
+        ];
+
+        $this->assertEquals($expected, $result);
+    }
+
+    public function testOverwriteReversed()
+    {
+        $config = [
+            'attribute1' => 'attribute2',
+        ];
+        $request = [
+            'Attributes' => [
+                'attribute2' => ['value2'],
+                'attribute1' => ['value1'],
+            ],
+        ];
+
+        $processed = self::processFilter($config, $request);
+        $result = $processed['Attributes'];
+        $expected = [
+            'attribute2' => ['value1'],
+        ];
+
+        $this->assertEquals($expected, $result);
+    }
 }