diff --git a/lib/SimpleSAML/Session.php b/lib/SimpleSAML/Session.php
index cd491391c31e1005e1d1c8c26649f3808a28e46f..73a1beb775114f6a0b88218c18b736c9d668584b 100644
--- a/lib/SimpleSAML/Session.php
+++ b/lib/SimpleSAML/Session.php
@@ -276,6 +276,9 @@ class SimpleSAML_Session {
 		$this->sessionindex = $sessionindex;
 	}
 	public function getSessionIndex() {
+		if($this->sessionindex === NULL) {
+			$this->sessionindex = SimpleSAML_Utilities::generateID();
+		}
 		return $this->sessionindex;
 	}
 	public function setNameID($nameid) {
diff --git a/lib/SimpleSAML/XML/SAML20/AuthnResponse.php b/lib/SimpleSAML/XML/SAML20/AuthnResponse.php
index 855908a6a790d804893af689894e3f3e5f28678b..e624160948f1e76ef5e0a18d3aa00680703d93ad 100644
--- a/lib/SimpleSAML/XML/SAML20/AuthnResponse.php
+++ b/lib/SimpleSAML/XML/SAML20/AuthnResponse.php
@@ -609,9 +609,11 @@ class SimpleSAML_XML_SAML20_AuthnResponse extends SimpleSAML_XML_AuthnResponse {
 		$issueInstant = SimpleSAML_Utilities::generateTimestamp();
 		$assertionExpire = SimpleSAML_Utilities::generateTimestamp(time() + 60 * 5);# 5 minutes
 		$notBefore = SimpleSAML_Utilities::generateTimestamp(time() - 30);
-		
+
 		$assertionid = SimpleSAML_Utilities::generateID();
-		$sessionindex = SimpleSAML_Utilities::generateID();
+
+		$session = SimpleSAML_Session::getInstance();
+		$sessionindex = $session->getSessionIndex();
 
 		
 		/**