diff --git a/Tools/PyUtils/python/MetaReader.py b/Tools/PyUtils/python/MetaReader.py
index c0bd2429554bcbd85bd6332c13b4f19be6e15b64..b761c477709698c4281394afa5dc399af807c66c 100644
--- a/Tools/PyUtils/python/MetaReader.py
+++ b/Tools/PyUtils/python/MetaReader.py
@@ -97,7 +97,7 @@ def read_metadata(filenames, file_type=None, mode='lite', promote=None, meta_key
         if current_file_type == 'POOL':
             import ROOT
             # open the file using ROOT.TFile
-            current_file = ROOT.TFile.Open(filename)
+            current_file = ROOT.TFile.Open( _get_pfn(filename) )
 
             # open the tree 'POOLContainer' to read the number of entries
             if current_file.GetListOfKeys().Contains('POOLContainer'):
@@ -335,6 +335,24 @@ def read_metadata(filenames, file_type=None, mode='lite', promote=None, meta_key
     return meta_dict
 
 
+def _get_pfn(filename):
+    """
+    Extract the actuall filename if LFN or PFN notation is used
+    """
+    pfx = filename[0:4]
+    if pfx == 'PFN:':
+        return filename[4:]
+    if pfx == 'LFN:':
+        import subprocess, os
+        os.environ['POOL_OUTMSG_LEVEL'] = 'Error' 
+        output = subprocess.check_output(['FClistPFN','-l',filename[4:]]).split('\n')
+        if len(output) == 2:
+            return output[0]
+        msg.error( 'FClistPFN({0}) returned unexpected number of lines:'.format(filename) )
+        msg.error( '\n'.join(output) )
+    return filename
+ 
+
 def _read_guid(filename):
     """
     Extracts the "guid" (Globally Unique Identfier in POOL files and Grid catalogs) value from a POOL file.
@@ -342,7 +360,7 @@ def _read_guid(filename):
     :return: the guid value
     """
     import ROOT
-    root_file = ROOT.TFile.Open(filename)
+    root_file = ROOT.TFile.Open( _get_pfn(filename) )
     params = root_file.Get('##Params')
 
     regex = re.compile(r'^\[NAME=([a-zA-Z0-9_]+)\]\[VALUE=(.*)\]')