diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java
index 089eb3fd30cafeabaad4e4e405897faa499adaec..0b7dee61ddf96ed4aee92ccc60a0ac77f6178381 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java
@@ -124,9 +124,13 @@ public class HCSDatasetLoader implements IHCSDatasetLoader
         assert wellLocation.getX() <= getContainer().getNumberOfColumns();
         assert wellLocation.getY() <= getContainer().getNumberOfRows();
 
-        long chosenChannelId =
-                query.getChannelIdByChannelNameDatasetIdOrExperimentId(getDataset().getId(),
+        Long chosenChannelId =
+                query.tryGetChannelIdByChannelNameDatasetIdOrExperimentId(getDataset().getId(),
                         getContainer().getExperimentId(), chosenChannel);
+        if (chosenChannelId == null)
+        {
+            return null;
+        }
 
         ImgImageDTO imageDTO;
         IContent content = null;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java
index 96e87398e2b448fdcece24d38584d9ad19a1ac87..c4a421f49c98f92b9e5a85a86b52f29fd7baa92d 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java
@@ -144,7 +144,7 @@ public interface IImagingUploadDAO extends TransactionQuery
     public void updateChannel(ImgChannelDTO channel);
 
     @Select("select ID from CHANNELS where (DS_ID = ?{1} or EXP_ID = ?{2}) and NAME = ?{3}")
-    public long getChannelIdByChannelNameDatasetIdOrExperimentId(long id, long experimentId,
+    public Long tryGetChannelIdByChannelNameDatasetIdOrExperimentId(long id, long experimentId,
             String chosenChannel);
 
 }
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 2d3ec0d94598124df8f28a8ad7d93a56bb3d9a0a..38a0556b98275cc705aa902fed7c1a88aa1db4dc 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
@@ -243,7 +243,8 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements
                         imageLoadersMap.get(imageReference.getDatasetCode());
                 assert imageAccessor != null : "imageAccessor not found for: " + imageReference;
                 AbsoluteImageReference image = tryGetImage(imageAccessor, imageReference);
-                if (image.tryGetColorComponent() != null || image.tryGetPage() != null)
+                if (image == null
+                        || (image.tryGetColorComponent() != null || image.tryGetPage() != null))
                 {
                     // TODO 2010-06-01, Tomasz Pylak: support paging/merged channels images in API
                     imageFiles.add(null);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java
index 34217de68786e90f9b21f585eaea363b34ad8be2..16f38316857323aebda44003d6d32c8484b6a929 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java
@@ -129,7 +129,7 @@ public class ScreeningClientApiTest
                     {
 
                         PlateImageReference imageRef =
-                                new PlateImageReference(wellRow, wellCol, tile, channel + "",
+                                new PlateImageReference(wellRow, wellCol, tile, "dapi",
                                         datasetIdentifier);
                         imageRefs.add(imageRef);
                         imageFiles.add(new File(dir, createImageFileName(imageRef)));
diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java
index 12bf8626e3b812fbee37b7f374e8cc285d2ea030..c78efa3c11318f55ca893f69e22517a7492782ae 100644
--- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java
+++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java
@@ -139,8 +139,8 @@ public class ImagingUploadDAOTest extends AbstractDBTest
                 || channels[1] == channelId1 && channels[0] == channelId2);
 
         // test get id of first channel
-        assertEquals(channels[0], dao.getChannelIdByChannelNameDatasetIdOrExperimentId(datasetId,
-                experimentId, "dsChannel"));
+        assertEquals(channels[0], dao.tryGetChannelIdByChannelNameDatasetIdOrExperimentId(datasetId,
+                experimentId, "dsChannel").intValue());
 
         List<ImgChannelDTO> experimentChannels = dao.getChannelsByExperimentId(experimentId);
         assertEquals(1, experimentChannels.size());