diff --git a/screening/source/java/OpenBISScreeningML.java b/screening/source/java/OpenBISScreeningML.java
index 7f08227b340665390df744dbe2d50bd36636d579..650b3971dedfc843efe5a39d2a08baad0910034d 100644
--- a/screening/source/java/OpenBISScreeningML.java
+++ b/screening/source/java/OpenBISScreeningML.java
@@ -519,37 +519,24 @@ public class OpenBISScreeningML
         {
             throw new RuntimeException("No plate with that code found.");
         }
+        final List<ImageDatasetReference> imageDatasets =
+                openbis.listImageDatasets(Arrays.asList(plateId));
+        final List<ImageDatasetMetadata> meta = openbis.listImageMetadata(imageDatasets);
+        if (meta.isEmpty())
+        {
+            return new Object[][][]
+                { new Object[0][], new Object[0][] };
+        }
         final List<String> imageChannels;
         if (channels == null || channels.length == 0)
         {
-            final List<ImageDatasetReference> imageDatasets =
-                    openbis.listImageDatasets(Arrays.asList(plateId));
-            final List<ImageDatasetMetadata> meta = openbis.listImageMetadata(imageDatasets);
-            if (meta.isEmpty())
-            {
-                return new Object[][][]
-                    { new Object[0][], new Object[0][] };
-            }
             imageChannels = getChannelCodes(meta);
         } else
         {
             imageChannels = Arrays.asList(channels);
         }
-        final List<ImageDatasetReference> imageDatasets =
-                openbis.listImageDatasets(Arrays.asList(plateId));
-        if (imageDatasets.isEmpty())
-        {
-            return new Object[][][]
-                { new Object[0][], new Object[0][] };
-        }
         final List<PlateImageReference> imageReferences =
-                new ArrayList<PlateImageReference>(imageDatasets.size());
-        final List<ImageDatasetMetadata> meta = openbis.listImageMetadata(imageDatasets);
-        if (meta.isEmpty())
-        {
-            return new Object[][][]
-                { new Object[0][], new Object[0][] };
-        }
+            new ArrayList<PlateImageReference>(imageDatasets.size());
         final List<File> imageFiles =
                 new ArrayList<File>(imageDatasets.size() * imageChannels.size()
                         * meta.get(0).getNumberOfTiles());
@@ -625,7 +612,7 @@ public class OpenBISScreeningML
                     {
                         return imageRefToFileMap.get(imageReference);
                     }
-                });
+                }, false);
         } finally
         {
             closeOutputStreams(imageRefToFileMap.values());