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 6ec471c0ffca140e3c6b6f5349d6102ca12949df..428754e79be4d11a7080959ed100cb2db5b22a95 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
@@ -34,6 +34,7 @@ import org.apache.ftpserver.ftplet.FtpException;
 import org.apache.ftpserver.ftplet.FtpFile;
 import org.apache.log4j.Logger;
 
+import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService;
@@ -146,11 +147,12 @@ public class DSSFileSystemView implements FileSystemView
             return pathResolverRegistry.resolve(normalizedPath, context);
         } catch (RuntimeException rex)
         {
+            Throwable realThrowable = CheckedExceptionTunnel.unwrapIfNecessary(rex);
             String message =
                     String.format("Error while resolving FTP path '%s' : %s", path,
-                            rex.getMessage());
+                            realThrowable.getMessage());
             operationLog.error(message);
-            throw new FtpException(message, rex);
+            throw new FtpException(message, realThrowable);
         }
     }