diff --git a/lib/SimpleSAML/Metadata/SAMLParser.php b/lib/SimpleSAML/Metadata/SAMLParser.php
index 22557766d2644f80e46e84bee96016c444a4ee8a..e5d1bf9a8b0ce667a4d94f0ee052353478e36070 100644
--- a/lib/SimpleSAML/Metadata/SAMLParser.php
+++ b/lib/SimpleSAML/Metadata/SAMLParser.php
@@ -174,7 +174,9 @@ class SimpleSAML_Metadata_SAMLParser {
 	public static function parseFile($file) {
 		$doc = new DOMDocument();
 
-		$res = $doc->load($file);
+		$data = SimpleSAML_Utilities::fetch($file);
+
+		$res = $doc->loadXML($data);
 		if($res !== TRUE) {
 			throw new Exception('Failed to read XML from file: ' . $file);
 		}
@@ -242,9 +244,10 @@ class SimpleSAML_Metadata_SAMLParser {
 
 		if ($file === NULL) throw new Exception('Cannot open file NULL. File name not specified.');
 
-		$doc = new DOMDocument();
+		$data = SimpleSAML_Utilities::fetch($file);
 
-		$res = $doc->load($file);
+		$doc = new DOMDocument();
+		$res = $doc->loadXML($data);
 		if($res !== TRUE) {
 			throw new Exception('Failed to read XML from file: ' . $file);
 		}