diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php
index 66953f9b9d2f2c82c46ce8e12e062c15cb4e498e..eb9d3859648fc779fbaec02e888eebad30090cae 100644
--- a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php
+++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php
@@ -295,7 +295,17 @@ class SimpleSAML_Metadata_MetaDataStorageHandler {
 
 		foreach($this->sources as $source) {
 			$metadata = $source->getMetaData($index, $set);
+			
 			if($metadata !== NULL) {
+				
+				if (array_key_exists('expire', $metadata)) {
+					if ($metadata['expire'] < time()) {
+						throw new Exception('Metadata for the entity [' . $index . '] expired ' . 
+							(time() - $metadata['expire']) . ' seconds ago.'
+						);
+					}
+				}
+				
 				$metadata['metadata-index'] = $index;
 				$metadata['metadata-set'] = $set;
 				return $metadata;