diff --git a/modules/saml/lib/Auth/Source/SP.php b/modules/saml/lib/Auth/Source/SP.php
index ebeea693de0a71aa39c79688448244d1e73bce64..32d4bcc5efe8b91b6609b4bb8a2058dde8f22280 100644
--- a/modules/saml/lib/Auth/Source/SP.php
+++ b/modules/saml/lib/Auth/Source/SP.php
@@ -459,6 +459,10 @@ class sspmod_saml_Auth_Source_SP extends SimpleSAML_Auth_Source {
 		$spMetadataArray = $this->metadata->toArray();
 		$idpMetadataArray = $idpMetadata->toArray();
 
+		/* Save the IdP in the state array. */
+		$state['saml:sp:IdP'] = $idp;
+		$state['PersistentAuthData'][] = 'saml:sp:IdP';
+
 		$authProcState = array(
 			'saml:sp:IdP' => $idp,
 			'saml:sp:State' => $state,
diff --git a/modules/saml/www/sp/saml2-acs.php b/modules/saml/www/sp/saml2-acs.php
index 4dccbf489828b17bff480802d71859a4b444d040..d9dfee9e778f89273f0b487e18ff01cd039b2a2c 100644
--- a/modules/saml/www/sp/saml2-acs.php
+++ b/modules/saml/www/sp/saml2-acs.php
@@ -162,8 +162,6 @@ $state['saml:AuthenticatingAuthority'] = $authenticatingAuthority;
 $state['saml:AuthenticatingAuthority'][] = $idp;
 $state['PersistentAuthData'][] = 'saml:AuthenticatingAuthority';
 
-$state['saml:sp:IdP'] = $idp;
-$state['PersistentAuthData'][] = 'saml:sp:IdP';
 $state['saml:sp:NameID'] = $nameId;
 $state['PersistentAuthData'][] = 'saml:sp:NameID';
 $state['saml:sp:SessionIndex'] = $sessionIndex;