diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
index a2919f628bad39ee44f3aa8e67b5dd81622eefdd..a449cc6340a29fa3229d9badc5421e43a57361be 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
@@ -89,18 +89,19 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements
         {
             // Register the service with the name server
             RpcServiceInterfaceVersionDTO ifaceVersion =
-                new RpcServiceInterfaceVersionDTO("screening-dss",
-                        "/rmi-datastore-server-screening-api-v1", getMajorVersion(),
-                        getMinorVersion());
+                    new RpcServiceInterfaceVersionDTO("screening-dss",
+                            "/rmi-datastore-server-screening-api-v1", getMajorVersion(),
+                            getMinorVersion());
             HttpInvokerServiceExporter nameServiceExporter =
-                ServiceProvider.getRpcNameServiceExporter();
-            RpcServiceNameServer nameServer = (RpcServiceNameServer) nameServiceExporter.getService();
+                    ServiceProvider.getRpcNameServiceExporter();
+            RpcServiceNameServer nameServer =
+                    (RpcServiceNameServer) nameServiceExporter.getService();
             nameServer.addSupportedInterfaceVersion(ifaceVersion);
-            
+
             operationLog.info("[rpc] Started DSS RPC screening service V1.");
         }
     }
-    
+
     // ------------------ impl -----------------
 
     public List<String> listAvailableFeatureNames(String sessionToken,
@@ -153,11 +154,10 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements
                 HCSImageDatasetLoaderFactory.create(datasetRoot, dataset.getDatasetCode());
         IContent imageFile = getAnyImagePath(imageAccessor, dataset);
         Geometry wellGeometry = imageAccessor.getWellGeometry();
-        int channelsNumber = imageAccessor.getChannelCount();
         int tilesNumber = wellGeometry.getColumns() * wellGeometry.getRows();
         BufferedImage image = ImageUtil.loadImage(imageFile.getInputStream());
-        return new ImageDatasetMetadata(dataset, channelsNumber, tilesNumber, image.getWidth(),
-                image.getHeight());
+        return new ImageDatasetMetadata(dataset, imageAccessor.getChannelsNames(), tilesNumber,
+                image.getWidth(), image.getHeight());
     }
 
     private static IContent getAnyImagePath(IHCSImageDatasetLoader imageAccessor,
@@ -199,7 +199,8 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements
     private FeatureVectorDataset createFeatureVectorDataset(String sessionToken,
             FeatureVectorDatasetReference dataset, List<String> featureNames)
     {
-        FeatureTableBuilder builder = new FeatureTableBuilder(featureNames, getDAO(), getOpenBISService());
+        FeatureTableBuilder builder =
+                new FeatureTableBuilder(featureNames, getDAO(), getOpenBISService());
         builder.addFeatureVectorsOfDataSet(dataset.getDatasetCode());
         List<String> existingFeatureNames = builder.getFeatureNames();
         List<FeatureTableRow> featureTableRows = builder.getFeatureTableRows();
@@ -361,7 +362,7 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements
     {
         return 0;
     }
-    
+
     private List<ImgFeatureDefDTO> getFeatureDefinitions(IDatasetIdentifier identifier)
     {
         ImgDatasetDTO dataSet = getDAO().tryGetDatasetByPermId(identifier.getDatasetCode());
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
index 461b00c6ff1e5c6fd82d478ab17c55dd80641315..75577297c6d662a5065f7970d36b0e9ab729135a 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java
@@ -245,6 +245,11 @@ public class ScreeningOpenbisServiceFacade implements IScreeningOpenbisServiceFa
      * Saves images for a given list of image references (given by data set code, well position,
      * channel and tile) in the provided output streams. Output streams will not be closed
      * automatically.<br>
+     * <p>
+     * If there is an image reference specified which is not referring to the existing image on the
+     * server, nothing will be written to the output stream returned by the output streams provider.
+     * No exception will be thrown.
+     * </p>
      * The number of image references has to be the same as the number of files.
      * 
      * @throws IOException when reading images from the server or writing them to the output streams
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetMetadata.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetMetadata.java
index 920945a051fb1116d5a0e60d5f865da5aba1d3f8..517b00b9d44f04d769739cc2991f9407e222bc53 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetMetadata.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetMetadata.java
@@ -1,6 +1,7 @@
 package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * Metadata information about images in a specified dataset.
@@ -15,17 +16,20 @@ public class ImageDatasetMetadata implements Serializable
 
     private final int channelsNumber;
 
+    private final List<String> channelNames;
+
     private final int tilesNumber;
 
     private final int width;
 
     private final int height;
 
-    public ImageDatasetMetadata(IImageDatasetIdentifier dataset, int channelsNumber,
+    public ImageDatasetMetadata(IImageDatasetIdentifier dataset, List<String> channelNames,
             int tilesNumber, int width, int height)
     {
         this.imageDataset = dataset;
-        this.channelsNumber = channelsNumber;
+        this.channelNames = channelNames;
+        this.channelsNumber = channelNames.size();
         this.tilesNumber = tilesNumber;
         this.width = width;
         this.height = height;
@@ -45,6 +49,14 @@ public class ImageDatasetMetadata implements Serializable
         return channelsNumber;
     }
 
+    /**
+     * names of channels in which images have been acquired for the described dataset
+     */
+    public List<String> getChannelNames()
+    {
+        return channelNames;
+    }
+
     /**
      * number of image tiles (aka fields) into which each well is splited
      */
@@ -68,7 +80,7 @@ public class ImageDatasetMetadata implements Serializable
     @Override
     public String toString()
     {
-        return "Dataset " + imageDataset + " has " + channelsNumber + " channels, " + tilesNumber
+        return "Dataset " + imageDataset + " has [" + channelNames + "] channels, " + tilesNumber
                 + " tiles. Images resolution: " + width + "x" + height;
     }
 }
\ No newline at end of file
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java
index 16fa7369b7dff1b6b994d88c66945a9523d053b0..14feaf5983a7729e1bf4b7cfd70ef7146b3812e5 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java
@@ -35,8 +35,6 @@ public interface IHCSDatasetLoader
 
     Geometry getWellGeometry();
 
-    int getChannelCount();
-
     List<String> getChannelsNames();
 
 }
\ No newline at end of file