diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java
index 0d4bec20d1b077d59c42dedfbd70d4ede31ae306..86175907072ebeb244de4022f302ca8ebc6e27dc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/FtpFileFactory.java
@@ -40,17 +40,24 @@ public class FtpFileFactory
     public static FtpFile createFtpFile(String dataSetCode, String path,
             IHierarchicalContentNode contentNode, IHierarchicalContent content,
             IHierarchicalContentNodeFilter childrenFilter, Cache cache)
+    {
+        return createFtpFile(dataSetCode, path, contentNode, content, childrenFilter, getLastModified(contentNode), cache);
+
+    }
+
+    public static FtpFile createFtpFile(String dataSetCode, String path, IHierarchicalContentNode contentNode, 
+            IHierarchicalContent content, IHierarchicalContentNodeFilter childrenFilter, 
+            long lastModified, Cache cache)
     {
         FtpFile file = cache.getFile(path);
         if (file == null)
         {
             file = new FtpFileImpl(dataSetCode, path, contentNode.getRelativePath(),
-                    contentNode.isDirectory(), getSize(contentNode), getLastModified(contentNode),
+                    contentNode.isDirectory(), getSize(contentNode), lastModified,
                     content, childrenFilter, cache);
             cache.putFile(file, path);
         }
         return file;
-
     }
 
     private static long getSize(IHierarchicalContentNode contentNode)
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java
index 9e04d7cd1bf9a4f7445851e5ef6b8398c197a5cc..6be6b321161f0476b31a823a6da8327941c38d45 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java
@@ -338,7 +338,7 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver,
         if (contentNodeOrNull != null && fileFilter.accept(contentNodeOrNull))
         {
             return FtpFileFactory.createFtpFile(dataSet.getCode(), path, contentNodeOrNull,
-                    content, fileFilter, cache);
+                    content, fileFilter, dataSet.getModificationDate().getTime(), cache);
         } else
         {
             return FtpPathResolverRegistry.getNonExistingFile(path, "Resource '"
@@ -442,16 +442,17 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver,
         Cache cache = context.getCache();
         for (EvaluatedElement evalElement : evalResult.getEvalElements())
         {
-            IHierarchicalContentNodeFilter fileFilter = getFileFilter(evalElement.dataSet);
+            AbstractExternalData dataSet = evalElement.dataSet;
+            IHierarchicalContentNodeFilter fileFilter = getFileFilter(dataSet);
             if (fileFilter.accept(evalElement.contentNode))
             {
                 String childPath =
                         parentPath + FtpConstants.FILE_SEPARATOR + evalElement.evaluatedTemplate;
-                String dataSetCode = evalElement.dataSet.getCode();
-                IHierarchicalContent content = evalResult.getHierarchicalContent(evalElement.dataSet);
+                String dataSetCode = dataSet.getCode();
+                IHierarchicalContent content = evalResult.getHierarchicalContent(dataSet);
                 FtpFile childFtpFile =
                         FtpFileFactory.createFtpFile(dataSetCode, childPath, evalElement.contentNode,
-                                content, fileFilter, cache);
+                                content, fileFilter, dataSet.getModificationDate().getTime(), cache);
                 result.add(childFtpFile);
             }
         }