diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java
index 911f0e9cda27de8d03ff99d2deb862ea9098b5b2..b0ddd901fb0587967c9d88986d8ec758d0234146 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java
@@ -111,7 +111,8 @@ public class DssServiceRpcGeneric extends AbstractDssServiceRpc<IDssServiceRpcGe
             } else
             {
                 list.add(new FileInfoDssDTO(startPathNode.getRelativePath(), startPathNode
-                        .getName(), false, startPathNode.getFileLength()));
+                        .getName(), false, startPathNode.getFileLength(), startPathNode
+                        .isChecksumCRC32Precalculated() ? startPathNode.getChecksumCRC32() : null));
             }
             FileInfoDssDTO[] fileInfos = new FileInfoDssDTO[list.size()];
             return list.toArray(fileInfos);
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java
index 6969699fa8542e6ed343c4c5233dbb7b32b3bd34..9b48f2b527008a64c9a842aaf03899056fc0ea9b 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java
@@ -25,8 +25,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 
 import ch.systemsx.cisd.base.annotation.JsonObject;
 
-
-
 /**
  * Represents information about a file stored in DSS.
  * 
@@ -46,13 +44,22 @@ public class FileInfoDssDTO implements Serializable
 
     private long fileSize;
 
+    private Integer crc32Checksum;
+
     public FileInfoDssDTO(String pathInDataSet, String pathInListing, boolean isDirectory,
             long fileSize)
+    {
+        this(pathInDataSet, pathInListing, isDirectory, fileSize, null);
+    }
+
+    public FileInfoDssDTO(String pathInDataSet, String pathInListing, boolean isDirectory,
+            long fileSize, Integer crc32Checksum)
     {
         this.pathInDataSet = pathInDataSet;
         this.pathInListing = pathInListing;
         this.isDirectory = isDirectory;
         this.fileSize = fileSize;
+        this.crc32Checksum = crc32Checksum;
     }
 
     /**
@@ -89,6 +96,17 @@ public class FileInfoDssDTO implements Serializable
         return fileSize;
     }
 
+    /**
+     * Return the CRC32 checksum, if it is available and <code>null</code> otherwise.
+     * <p>
+     * Note that the checksum will only be available when it is precomputed and available from some
+     * sort of database, i.e. if it is computationally "cheap" to provide the checksum.
+     */
+    public Integer tryGetCrc32Checksum()
+    {
+        return crc32Checksum;
+    }
+
     @Override
     public String toString()
     {
@@ -96,6 +114,10 @@ public class FileInfoDssDTO implements Serializable
         sb.append(getPathInDataSet());
         sb.append(getPathInListing());
         sb.append(getFileSize());
+        if (tryGetCrc32Checksum() != null)
+        {
+            sb.append(tryGetCrc32Checksum());
+        }
         return sb.toString();
     }
 
@@ -127,4 +149,10 @@ public class FileInfoDssDTO implements Serializable
     {
         this.fileSize = fileSize;
     }
+
+    private void setCrc32Checksum(int crc32Checksum)
+    {
+        this.crc32Checksum = crc32Checksum;
+    }
+
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/HierarchicalFileInfoDssBuilder.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/HierarchicalFileInfoDssBuilder.java
index aedd6f88d265f88b2d6f07cbc87771a94ad9c0ec..9855b9a9781dcffe815d6fbb45b2e6b5e9f3ae4a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/HierarchicalFileInfoDssBuilder.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/HierarchicalFileInfoDssBuilder.java
@@ -87,7 +87,8 @@ public class HierarchicalFileInfoDssBuilder
     {
         FileInfoDssDTO fileInfo =
                 new FileInfoDssDTO(node.getRelativePath(), pathRelativeToListingRoot(node),
-                        node.isDirectory(), (node.isDirectory()) ? -1 : node.getFileLength());
+                        node.isDirectory(), (node.isDirectory()) ? -1 : node.getFileLength(),
+                        node.isChecksumCRC32Precalculated() ? node.getChecksumCRC32() : null);
         return fileInfo;
     }