diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java
index 428754e79be4d11a7080959ed100cb2db5b22a95..75057e7aedb484197264aacd75266b5051fefd2f 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemView.java
@@ -21,7 +21,6 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -49,6 +48,8 @@ import ch.systemsx.cisd.openbis.generic.shared.util.Key;
  */
 public class DSSFileSystemView implements FileSystemView
 {
+    private static final String SPACE_ESCAPE = "__SPACE__";
+
     private static final Set<String> METHOD_NAMES = new HashSet<String>(Arrays.asList(
             "tryToGetExperiment", "listDataSetsByExperimentID"));
 
@@ -175,14 +176,15 @@ public class DSSFileSystemView implements FileSystemView
 
         try
         {
-            URI uri = new URI(fullPath);
+            URI uri = new URI(fullPath.replaceAll(" ", SPACE_ESCAPE));
             String normalizedPath = uri.normalize().toString();
             // remove trailing slashes
             normalizedPath = normalizedPath.replaceAll("/*$", "");
             // replace multiple adjacent slashes with a single slash
             normalizedPath = normalizedPath.replaceAll("/+", "/");
+            normalizedPath = normalizedPath.replaceAll(SPACE_ESCAPE, " ");
             return StringUtils.isBlank(normalizedPath) ? FtpConstants.ROOT_DIRECTORY : normalizedPath;
-        } catch (URISyntaxException ex)
+        } catch (Exception ex)
         {
             throw new FtpException("Cannot parse path " + fullPath, ex);
         }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemViewTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemViewTest.java
index 17d368af1d1e954cea2baa48383df1aa76c51de0..b797e04849a1d8ccd3e44b06771965794102d21d 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemViewTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/DSSFileSystemViewTest.java
@@ -84,11 +84,11 @@ public class DSSFileSystemViewTest extends AssertJUnit
     @Test
     public void testGetFile() throws FtpException
     {
-        prepareTryResolve("/abc/ghi/jkl");
+        prepareTryResolve("/abc/g h_i/j  k l");
         
-        FtpFile file = view.getFile("abc/def/../ghi//jkl//");
+        FtpFile file = view.getFile("abc/def/../g h_i//j  k l//");
         
-        assertEquals("/abc/ghi/jkl", file.getAbsolutePath());
+        assertEquals("/abc/g h_i/j  k l", file.getAbsolutePath());
     }
     
     @Test