diff --git a/www/shib13/sp/idpdisco.php b/www/shib13/sp/idpdisco.php
new file mode 100644
index 0000000000000000000000000000000000000000..56783dd7730446e6950a7ef9aee1f41c82d896b5
--- /dev/null
+++ b/www/shib13/sp/idpdisco.php
@@ -0,0 +1,60 @@
+<?php
+
+require_once('../../_include.php');
+
+
+require_once('SimpleSAML/Utilities.php');
+require_once('SimpleSAML/Session.php');
+require_once('SimpleSAML/XHTML/Template.php');
+require_once('SimpleSAML/XML/MetaDataStore.php');
+
+session_start();
+
+$config = SimpleSAML_Configuration::getInstance();
+$metadata = new SimpleSAML_XML_MetaDataStore($config);
+
+
+$session = SimpleSAML_Session::getInstance();
+		
+try {
+
+	if (!isset($_GET['entityID'])) throw new Exception('Missing parameter: entityID');
+	if (!isset($_GET['return'])) throw new Exception('Missing parameter: return');
+	if (!isset($_GET['returnIDParam'])) throw new Exception('Missing parameter: returnIDParam');
+
+	$spentityid = $_GET['entityID'];
+	$return = $_GET['return'];
+	$returnidparam = $_GET['returnIDParam'];
+	
+} catch (Exception $exception) {
+
+	$et = new SimpleSAML_XHTML_Template($config, 'error.php');
+	$et->data['message'] = 'Error getting required parameters for IdP Discovery Service';	
+	$et->data['e'] = $exception;	
+	$et->show();
+	exit(0);
+}
+
+
+if (isset($_GET['idpentityid'])) {
+
+	$idpentityid = $_GET['idpentityid'];
+
+	$returnurl = SimpleSAML_Utilities::addURLparameter($return, $returnidparam . '=' . $idpentityid);
+	header('Location: ' . $returnurl);
+	exit(0);
+}
+
+
+$idplist = $metadata->getList('shib13-idp-remote');
+
+
+$t = new SimpleSAML_XHTML_Template($config, 'selectidp.php');
+$t->data['header'] = 'Select your identity provider';
+$t->data['idplist'] = $idplist;
+$t->data['urlpattern'] = htmlentities(SimpleSAML_Utilities::selfURL() . '&idpentityid=');
+$t->show();
+
+
+
+?>
\ No newline at end of file
diff --git a/www/shib13/sp/initSSO.php b/www/shib13/sp/initSSO.php
index ccb3a799df93fbfc9de2cc42994560a58b86e26b..fd7344a14f8913f350ad3c7bc6c772ff05f5b33b 100644
--- a/www/shib13/sp/initSSO.php
+++ b/www/shib13/sp/initSSO.php
@@ -45,6 +45,18 @@ try {
 
 if (!isset($session) || !$session->isValid() ) {
 	
+	
+	if ($idpentityid == null) {
+	
+		$returnURL = urlencode(SimpleSAML_Utilities::selfURL());
+		$discservice = '/' . $config->getValue('baseurlpath') . 'shib13/sp/idpdisco.php?entityID=' . $spentityid . 
+			'&return=' . $returnURL . '&returnIDParam=idpentityid';
+		header('Location: ' . $discservice);
+		exit(0);
+		
+	}
+	
+	
 	try {
 		$ar = new SimpleSAML_XML_Shib13_AuthnRequest($config, $metadata);
 		$ar->setIssuer($spentityid);