diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageSeriesGrid.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageSeriesGrid.java
index 3cc0d6a458e34f32b4528edb65ed867e254accde..94e5556fdd891eb029ed5263f1b034aea09cd924 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageSeriesGrid.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/LogicalImageSeriesGrid.java
@@ -488,16 +488,17 @@ class LogicalImageSeriesGrid
             matrix = new ArrayList<List<ImageSeriesPoint>>();
             
             Set<Integer> depthMapSizes = new HashSet<Integer>();
+            int depthLevelCount = 0;
             for (Map<Float, ImageSeriesPoint> depthMap : values)
             {
                 matrix.add(new ArrayList<ImageSeriesPoint>(depthMap.values()));
+                depthLevelCount = Math.max(depthLevelCount, depthMap.size());
                 depthMapSizes.add(depthMap.size());
             }
-            int depthMapSizesSize = depthMapSizes.size();
-            numberOfDepthLevels = depthMapSizesSize == 0 ? 0 : depthMapSizes.iterator().next();
+            numberOfDepthLevels = depthLevelCount;
             matrixViewPossible =
                     seriesNumberPresent == false && timepointOrDepthNotPresent == false
-                            && depthMapSizesSize == 1;
+                            && depthMapSizes.size() == 1;
         }
         
         public ImageSeriesPoint get(int timeIndex, int depthIndex)