diff --git a/www/saml2/idp/ArtifactResolutionService.php b/www/saml2/idp/ArtifactResolutionService.php
index d1bdf7cd01390f56cf453a9ebe7f2a37606cab42..ac4592d615165ec924ab3ae3ba0784288a9c991d 100644
--- a/www/saml2/idp/ArtifactResolutionService.php
+++ b/www/saml2/idp/ArtifactResolutionService.php
@@ -35,12 +35,19 @@ if (!($request instanceof SAML2_ArtifactResolve)) {
 	throw new Exception('Message received on ArtifactResolutionService wasn\'t a ArtifactResolve request.');
 }
 $artifact = $request->getArtifact();
+
 $responseData = $store->get('artifact', $artifact);
-$document = new DOMDocument();
-$document->loadXML($responseData);
-$responseXML = $document->firstChild;
-$artifactResponse = new SAML2_ArtifactResponse();
+$store->delete('artifact', $artifact);
+
+if ($responseData !== NULL) {
+	$document = new DOMDocument();
+	$document->loadXML($responseData);
+	$responseXML = $document->firstChild;
+} else {
+	$responseXML = NULL;
+}
 
+$artifactResponse = new SAML2_ArtifactResponse();
 $artifactResponse->setIssuer($idpEntityId);
 $artifactResponse->setInResponseTo($request->getId());
 $artifactResponse->setAny($responseXML);