diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSImageDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSImageDatasetLoader.java
index 04caa8b4268b5189cdb28385c6e7a1527457d71b..69c4966f71575227cadb1e0c19bc68235627580d 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSImageDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSImageDatasetLoader.java
@@ -65,7 +65,7 @@ public class HCSImageDatasetLoader extends HCSDatasetLoader implements IHCSImage
     }
 
     /**
-     * @param chosenChannelCode 
+     * @param chosenChannelCode
      * @return image (with absolute path, page and color)
      */
     public AbsoluteImageReference tryGetImage(String chosenChannelCode,
@@ -102,35 +102,23 @@ public class HCSImageDatasetLoader extends HCSDatasetLoader implements IHCSImage
                 imageDTO = tryGetImage(chosenChannelId, channelStackReference, datasetId);
                 if (imageDTO != null)
                 {
+                    // produce a thumbnail by resizing the original image
                     content =
-                            new ThumbnailContent(contentRepository.getContent(imageDTO
-                                    .getFilePath()), thumbnailSizeOrNull);
+                            new ThumbnailContent(getOriginalFileContent(imageDTO),
+                                    thumbnailSizeOrNull);
                 }
             } else
             {
-                content = contentRepository.getContent(imageDTO.getFilePath());
+                // get the thumbnail content
+                content = getOriginalFileContent(imageDTO);
             }
         } else
         {
+            // get the image content from the original image
             imageDTO = tryGetImage(chosenChannelId, channelStackReference, datasetId);
             if (imageDTO != null)
             {
-                content = contentRepository.getContent(imageDTO.getFilePath());
-                final InputStream is = content.getInputStream();
-                final String fileType = DataTypeUtil.tryToFigureOutFileTypeOf(is);
-                if (DataTypeUtil.isTiff(fileType) == false || imageDTO.getColorComponent() != null
-                        || imageDTO.getPage() != null)
-                {
-                    final int page = (imageDTO.getPage() != null) ? imageDTO.getPage() : 0;
-                    BufferedImage image = ImageUtil.loadImage(is, fileType, page);
-                    if (imageDTO.getColorComponent() != null)
-                    {
-                        image =
-                                ImageChannelsUtils.transformToChannel(image, imageDTO
-                                        .getColorComponent());
-                    }
-                    content = asContent(image, fileType, content.getName(), content.getUniqueId());
-                }
+                content = getImageContent(imageDTO);
             }
         }
         if (content != null && imageDTO != null)
@@ -143,6 +131,30 @@ public class HCSImageDatasetLoader extends HCSDatasetLoader implements IHCSImage
         }
     }
 
+    private IContent getImageContent(ImgImageDTO imageDTO)
+    {
+        IContent content = getOriginalFileContent(imageDTO);
+        final InputStream is = content.getInputStream();
+        final String fileType = DataTypeUtil.tryToFigureOutFileTypeOf(is);
+        if (DataTypeUtil.isTiff(fileType) == false || imageDTO.getColorComponent() != null
+                || imageDTO.getPage() != null)
+        {
+            final int page = (imageDTO.getPage() != null) ? imageDTO.getPage() : 0;
+            BufferedImage image = ImageUtil.loadImage(is, fileType, page);
+            if (imageDTO.getColorComponent() != null)
+            {
+                image = ImageChannelsUtils.transformToChannel(image, imageDTO.getColorComponent());
+            }
+            content = asContent(image, fileType, content.getName(), content.getUniqueId());
+        }
+        return content;
+    }
+
+    private IContent getOriginalFileContent(ImgImageDTO imageDTO)
+    {
+        return contentRepository.getContent(imageDTO.getFilePath());
+    }
+
     private ImgImageDTO tryGetImage(long channelId,
             ImageChannelStackReference channelStackReference, long datasetId)
     {