diff --git a/www/saml2/idp/ArtifactResolutionService.php b/www/saml2/idp/ArtifactResolutionService.php
index 16a99dc62e1285bb179ff4d8cd46ba8c44c26410..c4e52bd1498e45b5b7b835575b9825e7f54a08aa 100644
--- a/www/saml2/idp/ArtifactResolutionService.php
+++ b/www/saml2/idp/ArtifactResolutionService.php
@@ -47,6 +47,10 @@ if (!($request instanceof \SAML2\ArtifactResolve)) {
 }
 
 $issuer = $request->getIssuer();
+if (!is_string($issuer)) {
+    $issuer = $issuer->getValue();
+}
+
 $spMetadata = $metadata->getMetaDataConfig($issuer, 'saml20-sp-remote');
 
 $artifact = $request->getArtifact();
@@ -62,7 +66,11 @@ if ($responseData !== null) {
 }
 
 $artifactResponse = new \SAML2\ArtifactResponse();
-$artifactResponse->setIssuer($idpEntityId);
+
+$issuer = new \SAML2\XML\saml\Issuer();
+$issuer->setValue($idpEntityId);
+$artifactResponse->setIssuer($issuer);
+
 $artifactResponse->setInResponseTo($request->getId());
 $artifactResponse->setAny($responseXML);
 \SimpleSAML\Module\saml\Message::addSign($idpMetadata, $spMetadata, $artifactResponse);