diff --git a/lib/SimpleSAML/Metadata/SAMLBuilder.php b/lib/SimpleSAML/Metadata/SAMLBuilder.php
index a8f26191eaee854c19d3086ec2b9a91309ed6a28..f4c224852ada83591708e1ca96381467b0028e95 100644
--- a/lib/SimpleSAML/Metadata/SAMLBuilder.php
+++ b/lib/SimpleSAML/Metadata/SAMLBuilder.php
@@ -236,6 +236,8 @@ class SimpleSAML_Metadata_SAMLBuilder {
 	 */
 	public function addMetadataSP20($metadata) {
 		assert('is_array($metadata)');
+		assert('isset($metadata["entityid"])');
+		assert('isset($metadata["metadata-set"])');
 
 		$e = $this->createElement('SPSSODescriptor');
 		$e->setAttribute('protocolSupportEnumeration', 'urn:oasis:names:tc:SAML:2.0:protocol');
@@ -359,6 +361,8 @@ class SimpleSAML_Metadata_SAMLBuilder {
 	 */
 	public function addMetadataIdP20($metadata) {
 		assert('is_array($metadata)');
+		assert('isset($metadata["entityid"])');
+		assert('isset($metadata["metadata-set"])');
 
 		$e = $this->createElement('IDPSSODescriptor');
 		$e->setAttribute('protocolSupportEnumeration', 'urn:oasis:names:tc:SAML:2.0:protocol');
@@ -418,6 +422,8 @@ class SimpleSAML_Metadata_SAMLBuilder {
 	 */
 	public function addMetadataSP11($metadata) {
 		assert('is_array($metadata)');
+		assert('isset($metadata["entityid"])');
+		assert('isset($metadata["metadata-set"])');
 
 		$e = $this->createElement('SPSSODescriptor');
 		$e->setAttribute('protocolSupportEnumeration', 'urn:oasis:names:tc:SAML:1.1:protocol');
@@ -464,6 +470,8 @@ class SimpleSAML_Metadata_SAMLBuilder {
 	 */
 	public function addMetadataIdP11($metadata) {
 		assert('is_array($metadata)');
+		assert('isset($metadata["entityid"])');
+		assert('isset($metadata["metadata-set"])');
 
 		$e = $this->createElement('IDPSSODescriptor');
 		$e->setAttribute('protocolSupportEnumeration', 'urn:oasis:names:tc:SAML:1.1:protocol');