diff --git a/lib/SimpleSAML/Metadata/SAMLBuilder.php b/lib/SimpleSAML/Metadata/SAMLBuilder.php
index 4553001608ac029a40c8cbd8772f51ec56a055a5..f684d82bd38a641443ada6cd968913eb9e73a002 100644
--- a/lib/SimpleSAML/Metadata/SAMLBuilder.php
+++ b/lib/SimpleSAML/Metadata/SAMLBuilder.php
@@ -465,7 +465,7 @@ class SimpleSAML_Metadata_SAMLBuilder {
 
 		foreach ($metadata->getArray('contacts', array()) as $contact) {
 			if (array_key_exists('contactType', $contact) && array_key_exists('emailAddress', $contact)) {
-				$this->addContact($contact['contactType'], $contact);
+				$this->addContact($contact['contactType'], SimpleSAML_Utils_Config_Metadata::getContact($contact));
 			}
 		}
 
@@ -511,7 +511,7 @@ class SimpleSAML_Metadata_SAMLBuilder {
 
 		foreach ($metadata->getArray('contacts', array()) as $contact) {
 			if (array_key_exists('contactType', $contact) && array_key_exists('emailAddress', $contact)) {
-				$this->addContact($contact['contactType'], $contact);
+				$this->addContact($contact['contactType'], SimpleSAML_Utils_Config_Metadata::getContact($contact));
 			}
 		}
 
diff --git a/modules/adfs/www/idp/metadata.php b/modules/adfs/www/idp/metadata.php
index f1a191a41d6229322789fba807a33efd115ed90d..8dcd6bab8efeadedbb40561c37417d3721c38477 100644
--- a/modules/adfs/www/idp/metadata.php
+++ b/modules/adfs/www/idp/metadata.php
@@ -112,10 +112,11 @@ try {
 	$metaBuilder->addOrganizationInfo($metaArray);
 	$technicalContactEmail = $config->getString('technicalcontact_email', NULL);
 	if ($technicalContactEmail && $technicalContactEmail !== 'na@example.org') {
-		$metaBuilder->addContact('technical', array(
+		$metaBuilder->addContact('technical', SimpleSAML_Utils_Config_Metadata::getContact(array(
 			'emailAddress' => $technicalContactEmail,
 			'name' => $config->getString('technicalcontact_name', NULL),
-		));
+			'contactType' => 'technical',
+		)));
 	}
 	$output_xhtml = array_key_exists('output', $_GET) && $_GET['output'] == 'xhtml';
 	$metaxml = $metaBuilder->getEntityDescriptorText($output_xhtml);
diff --git a/www/shib13/idp/metadata.php b/www/shib13/idp/metadata.php
index 40bf49619ae719a0d3c4f8c590465ac56ae77748..e04345e206ff5758a1675d3f31fdb37c27c31b2e 100644
--- a/www/shib13/idp/metadata.php
+++ b/www/shib13/idp/metadata.php
@@ -69,10 +69,11 @@ try {
 	$metaBuilder = new SimpleSAML_Metadata_SAMLBuilder($idpentityid);
 	$metaBuilder->addMetadataIdP11($metaArray);
 	$metaBuilder->addOrganizationInfo($metaArray);
-	$metaBuilder->addContact('technical', array(
+	$metaBuilder->addContact('technical', SimpleSAML_Utils_Config_Metadata::getContact(array(
 		'emailAddress' => $config->getString('technicalcontact_email', NULL),
 		'name' => $config->getString('technicalcontact_name', NULL),
-		));
+		'contactType' => 'technical',
+		)));
 	$metaxml = $metaBuilder->getEntityDescriptorText();
 
 	/* Sign the metadata if enabled. */