diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
index e2749b5f011bd9c2075b630413c69e3bdf2429a6..e2a78dc8a0d86cbbfcbb2c9f94986123ac1920aa 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
@@ -83,6 +83,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetShareId;
 import ch.systemsx.cisd.openbis.generic.shared.translator.DataStoreTranslator;
+
 import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
 import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
 import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
@@ -539,15 +540,23 @@ public class DatasetLister extends AbstractLister implements IDatasetLister
 
         List<DatasetRecord> dataSets = null;
 
-        if (archivingStatus != null && presentInArchive != null)
+        if (archivingStatus != null)
         {
-            dataSets = query.getDatasetsByDataStoreIdWithArchivingStatusAndPressentInArchive(dataStoreID, archivingStatus.name(), presentInArchive);
-        } else if (archivingStatus == null)
+            String statusAsString = archivingStatus.name();
+            if (presentInArchive != null)
+            {
+                dataSets = query.getDatasetsByDataStoreIdWithArchivingStatusAndPressentInArchive(dataStoreID, 
+                        statusAsString, presentInArchive);
+            } else
+            {
+                dataSets = query.getDatasetsByDataStoreIdWithArchivingStatus(dataStoreID, statusAsString);
+            }
+        } else if (presentInArchive != null)
         {
             dataSets = query.getDatasetsByDataStoreIdWithPressentInArchive(dataStoreID, presentInArchive);
-        } else if (presentInArchive == null)
+        } else
         {
-            dataSets = query.getDatasetsByDataStoreIdWithArchivingStatus(dataStoreID, archivingStatus.name());
+            throw new UserFailureException("Neither archiving status nor present in archive flag are specified.");
         }
 
         return orderByCode(enrichDatasets(dataSets, datasetFetchOptions));