diff --git a/bin/test.php b/bin/test.php
index a6ac235819ae3b83460fc2765f547be2a921000e..d5a78890793eb9e1ec525e8bbdadc13f60843ea8 100755
--- a/bin/test.php
+++ b/bin/test.php
@@ -136,7 +136,9 @@ function parseSimpleSamlHttpRedirectDebug($page) {
  *         the post destination in 'url' and the post arguments as an associative array in 'post'.
  */
 function parseSimpleSamlHttpPost($page) {
-	if(strpos($page, '<title>SAML 2.0 POST</title>') === FALSE && strpos($page, '<title>SAML Response Debug-mode</title>') === FALSE) {
+	if(strpos($page, '<title>SAML 2.0 POST</title>') === FALSE
+		&& strpos($page, '<title>SAML Response Debug-mode</title>') === FALSE
+		&& strpos($page, '<title>SAML (Shibboleth 1.3) Response Debug-mode</title>') === FALSE) {
 		return FALSE;
 	}
 
@@ -146,20 +148,24 @@ function parseSimpleSamlHttpPost($page) {
 	}
 	$url = html_entity_decode($matches[1]);
 
+	$params = array();
+
 	if(!preg_match('/<input type="hidden" name="SAMLResponse" value="([^"]*)" \\/>/', $page, $matches)) {
 		echo('Invalid simpleSAMLphp HTTP-POST page. Missing SAMLResponse.' . "\n");
 		return FALSE;
 	}
-	$samlResponse = html_entity_decode($matches[1]);
+	$params['SAMLResponse'] = html_entity_decode($matches[1]);
 
-	if(!preg_match('/<input type="hidden" name="RelayState" value="([^"]*)" \\/>/', $page, $matches)) {
-		echo('Invalid simpleSAMLphp HTTP-POST page. Missing RelayState.' . "\n");
-		return FALSE;
+	if(preg_match('/<input type="hidden" name="RelayState" value="([^"]*)" \\/>/', $page, $matches)) {
+		$params['RelayState'] = html_entity_decode($matches[1]);
 	}
-	$relayState = html_entity_decode($matches[1]);
 
+	if(preg_match('/<input type="hidden" name="TARGET" value="([^"]*)" \\/>/', $page, $matches)) {
+		$params['TARGET'] = html_entity_decode($matches[1]);
+	}
 
-	return array('url' => $url, 'post' => array('SAMLResponse' => $samlResponse, 'RelayState' => $relayState));
+
+	return array('url' => $url, 'post' => $params);
 }
 
 
@@ -342,6 +348,11 @@ function initSSO($test, $curl) {
 		$params['idp'] = $test['idp'];
 	}
 
+	/* Add the protocol which simpleSAMLphp should use to authenticate. */
+	if(array_key_exists('protocol', $test)) {
+		$params['protocol'] = $test['protocol'];
+	}
+
 	/* Add attribute tests. */
 	if(array_key_exists('attributes', $test)) {
 		$i = 0;
@@ -540,6 +551,8 @@ function doLogout($test, $curl) {
 function doTest($test) {
 	$curl = curlCreate();
 
+	$res = TRUE;
+
 	/* Initialize SSO. */
 	do {
 		$loginPage = initSSO($test, $curl);
@@ -563,6 +576,11 @@ function doTest($test) {
 
 		echo('Logged in, attributes OK' . "\n");
 
+		if(array_key_exists('protocol', $test) && $test['protocol'] === 'shib13') {
+			echo('Shib13: Logout not implemented.' . "\n");
+			break;
+		}
+
 		echo('Logging out.' . "\n");
 
 		$result = doLogout($test, $curl);
diff --git a/config/test-template.php b/config/test-template.php
index 76d2ae650e6ee2186d055d1f10e37a8d50c7a85a..63b1ba6f1917958e2644b80805a9b6635a80f45b 100644
--- a/config/test-template.php
+++ b/config/test-template.php
@@ -26,6 +26,29 @@ $tests[] = array(
 	);
 
 
+/* Add a test towards the default IdP using the shib13 protocol. */
+$tests[] = array(
+
+	/* The full url to the admin/test.php page on the SP. */
+	'url' => 'https://example.org/simplesaml/admin/test.php',
+
+	/* The protocol we are going to test. */
+	'protocol' => 'shib13',
+
+	/* The username and password which should be used for logging in. ('simplesaml' login type) */
+	'username' => 'username',
+	'password' => 'secretpassword',
+
+	/* The type of login page we expect. */
+	'logintype' => 'simplesaml',
+
+	/* Expected attributes in the result. */
+	'attributes' => array(
+		'uid' => 'test',
+		),
+	);
+
+
 /* Add a test towards the specified IdP using the FEIDE login handler. */
 $tests[] = array(