diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ImageUtil.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ImageUtil.java
index 34d235eb68ade627ae3baea11860e130ae42be03..9cb341b526d8501b6393265c84510eea21ba120b 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ImageUtil.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ImageUtil.java
@@ -882,7 +882,7 @@ public class ImageUtil
                     + contentNode.getRelativePath());
         }
         BufferedImage result = loadImage(contentNode);
-        result = convertForDisplayIfNecessary(result);
+        result = convertForDisplayIfNecessary(result, null);
         return result;
     }
 
@@ -902,7 +902,7 @@ public class ImageUtil
             int maxHeight)
     {
         BufferedImage result = rescale(image, maxWidth, maxHeight, true, false);
-        result = convertForDisplayIfNecessary(result);
+        result = convertForDisplayIfNecessary(result, null);
         return result;
     }
 
@@ -910,23 +910,15 @@ public class ImageUtil
      * If the specified image uses grayscale with color depth larger then 8 bits, conversion to 8
      * bits grayscale is done. Otherwise the original image is returned.
      */
-    public static BufferedImage convertForDisplayIfNecessary(BufferedImage image)
-    {
-        return convertForDisplayIfNecessary(image, DEFAULT_IMAGE_OPTIMAL_RESCALING_FACTOR);
-    }
-
-    /**
-     * If the specified image uses grayscale with color depth larger then 8 bits, conversion to 8
-     * bits grayscale is done. Otherwise the original image is returned.
-     */
-    public static BufferedImage convertForDisplayIfNecessary(BufferedImage image, float threshold)
+    public static BufferedImage convertForDisplayIfNecessary(BufferedImage image, Float threshold)
     {
         if (isGrayscale(image))
         {
             if (image.getColorModel().getPixelSize() > 8)
             {
                 GrayscalePixels pixels = new GrayscalePixels(image);
-                Levels intensityRange = IntensityRescaling.computeLevels(pixels, threshold);
+                Levels intensityRange = IntensityRescaling.computeLevels(pixels, 
+                        threshold == null ? DEFAULT_IMAGE_OPTIMAL_RESCALING_FACTOR : threshold);
                 BufferedImage result =
                         IntensityRescaling.rescaleIntensityLevelTo8Bits(pixels, intensityRange);
                 return result;
@@ -986,7 +978,7 @@ public class ImageUtil
             // WORKAROUND: non-default interpolations do not work well with 16 bit grayscale images.
             // We have to rescale colors to 8 bit here, otherwise the result will contain only few
             // colors.
-            imageToRescale = convertForDisplayIfNecessary(imageToRescale, 0);
+            imageToRescale = convertForDisplayIfNecessary(imageToRescale, 0f);
         }
         graphics2D.drawImage(imageToRescale, 0, 0, thumbnailWidth, thumbnailHeight, null);
         graphics2D.dispose();
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java
index 546617321c01bb8b2004bcdde85a886c924198eb..adc2c89882cf2a47d45851cebe5899601281f1d2 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java
@@ -545,9 +545,7 @@ public class ImageChannelsUtils
     {
         BufferedImage image = calculateSingleImage(imageReference);
         image = transform(image, imageReference, transformationInfo);
-        image =
-                threshold == null ? ImageUtil.convertForDisplayIfNecessary(image) : ImageUtil
-                        .convertForDisplayIfNecessary(image, threshold);
+        image = ImageUtil.convertForDisplayIfNecessary(image, threshold);
         return image;
     }
 
@@ -758,9 +756,7 @@ public class ImageChannelsUtils
             {
                 // NOTE: here we skip image level transformations as well
                 image = calculateSingleImage(imageRef);
-                image =
-                        threshold == null ? ImageUtil.convertForDisplayIfNecessary(image)
-                                : ImageUtil.convertForDisplayIfNecessary(image, threshold);
+                image = ImageUtil.convertForDisplayIfNecessary(image, threshold);
             }
             images.add(new ImageWithReference(image, imageRef));
         }