diff --git a/modules/saml/lib/Auth/Source/SP.php b/modules/saml/lib/Auth/Source/SP.php
index 5155d48440f47a4780575beeb8edad8bad942ea9..eaf676534cc5526d0cb7b60b20f3c69e4655cf87 100644
--- a/modules/saml/lib/Auth/Source/SP.php
+++ b/modules/saml/lib/Auth/Source/SP.php
@@ -439,8 +439,6 @@ class sspmod_saml_Auth_Source_SP extends SimpleSAML_Auth_Source {
 
 		$authProcState = array(
 			'saml:sp:IdP' => $idp,
-			'saml:sp:NameID' => $state['saml:sp:NameID'],
-			'saml:sp:SessionIndex' => $state['saml:sp:SessionIndex'],
 			'saml:sp:State' => $state,
 			'ReturnCall' => array('sspmod_saml_Auth_Source_SP', 'onProcessingCompleted'),
 
@@ -449,6 +447,13 @@ class sspmod_saml_Auth_Source_SP extends SimpleSAML_Auth_Source {
 			'Source' => $idpMetadataArray,
 		);
 
+		if (isset($state['saml:sp:NameID'])) {
+			$authProcState['saml:sp:NameID'] = $state['saml:sp:NameID'];
+		}
+		if (isset($state['saml:sp:SessionIndex'])) {
+			$authProcState['saml:sp:SessionIndex'] = $state['saml:sp:SessionIndex'];
+		}
+
 		$pc = new SimpleSAML_Auth_ProcessingChain($idpMetadataArray, $spMetadataArray, 'sp');
 		$pc->processState($authProcState);