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 edcd6b9e717b33e4809fdc4ae390c08cc693c9d1..d5ebe72798381412e5d3855062768222840f26aa 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
@@ -181,7 +181,13 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver,
         String relativePath = evaluationResult.fileName;
         if (false == StringUtils.isBlank(nestedSubPath))
         {
-            relativePath += FtpConstants.FILE_SEPARATOR + nestedSubPath;
+            if (StringUtils.isBlank(relativePath))
+            {
+                relativePath = nestedSubPath;
+            } else
+            {
+                relativePath += FtpConstants.FILE_SEPARATOR + nestedSubPath;
+            }
         }
 
         IHierarchicalContentNodeFilter fileFilter = getFileFilter(evaluationResult.dataSet);
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
index 294e3aa4e612706951daf42a4bbe3011b515e9fa..fbce42d118e1df3f79b64f9fd8101bede832e38b 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolverTest.java
@@ -166,9 +166,11 @@ public class TemplateBasedDataSetResourceResolverTest extends AssertJUnit
         resolver = new TemplateBasedDataSetResourceResolver(config);
 
         final String dataSetCode = "dataSetCode";
-        final String subPath = "/level1/level2/fileName.txt";
+        final String subPath = "level1/level2/fileName.txt";
 
-        String path = EXP_ID + FtpConstants.FILE_SEPARATOR + dataSetCode + subPath;
+        String path =
+                EXP_ID + FtpConstants.FILE_SEPARATOR + dataSetCode + FtpConstants.FILE_SEPARATOR
+                        + subPath;
 
         List<ExternalData> dataSets = Arrays.asList(createDataSet(dataSetCode, DS_TYPE1));