diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtils.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtils.java
index 8efadece0529b9a36d1376b756c5319c6c6df66d..bb592225000ec3cfbfe67d7ce63b9a43709228b2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtils.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtils.java
@@ -269,7 +269,7 @@ public class SegmentedStoreUtils
         }
         List<DatasetDescription> filteredDataSets = new ArrayList<DatasetDescription>(dataSets);
         List<SimpleDataSetInformationDTO> filteredDataSetsInShare =
-                new ArrayList<SimpleDataSetInformationDTO>(unarchivingScratchShare.getDataSetsOrderedBySize());
+                getAvailableDataSetsInUnarchivingScratchShare(unarchivingScratchShare);
 
         removeCommonDataSets(filteredDataSets, filteredDataSetsInShare);
         long requestedSpace = calculateTotalSizeOfDataSetsToKeep(filteredDataSets);
@@ -299,6 +299,20 @@ public class SegmentedStoreUtils
                 + FileUtilities.byteCountToDisplaySize(requestedSpace));
     }
 
+    private static List<SimpleDataSetInformationDTO> getAvailableDataSetsInUnarchivingScratchShare(Share unarchivingScratchShare)
+    {
+        List<SimpleDataSetInformationDTO> availableDataSets = new ArrayList<SimpleDataSetInformationDTO>();
+        List<SimpleDataSetInformationDTO> dataSets = unarchivingScratchShare.getDataSetsOrderedBySize();
+        for (SimpleDataSetInformationDTO dataSet : dataSets)
+        {
+            if (dataSet.getStatus().isAvailable())
+            {
+                availableDataSets.add(dataSet);
+            }
+        }
+        return availableDataSets;
+    }
+
     /**
      * Remove common data sets from both lists
      */
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtilsTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtilsTest.java
index c710c1d4ead3d591133b976129088d8115cf6df6..8e455027ca702c2bc90a1067c36d613130b279ce 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtilsTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/SegmentedStoreUtilsTest.java
@@ -16,6 +16,9 @@
 
 package ch.systemsx.cisd.openbis.dss.generic.shared.utils;
 
+import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus.ARCHIVED;
+import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus.AVAILABLE;
+
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Method;
@@ -137,7 +140,7 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
     @Test
     public void testFreeSpaceForAShareWhichIsNotAnUnarchivingScratchShare()
     {
-        SimpleDataSetInformationDTO ds1 = dataSet(1, 11 * FileUtils.ONE_GB);
+        SimpleDataSetInformationDTO ds1 = dataSet(1, 11 * FileUtils.ONE_GB, AVAILABLE);
         Share share = new Share(shareFolder, 0, freeSpaceProvider);
 
         try
@@ -157,7 +160,7 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
     @Test
     public void testFreeSpaceNothingToDo()
     {
-        SimpleDataSetInformationDTO ds1 = dataSet(1, 11 * FileUtils.ONE_GB);
+        SimpleDataSetInformationDTO ds1 = dataSet(1, 11 * FileUtils.ONE_GB, AVAILABLE);
         Share share = new Share(shareFolder, 0, freeSpaceProvider);
         share.setUnarchivingScratchShare(true);
         RecordingMatcher<HostAwareFile> recordingFileMatcher = prepareFreeSpace(12 * FileUtils.ONE_GB);
@@ -173,11 +176,11 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
     @Test
     public void testFreeSpaceRemovingOneDataSet()
     {
-        SimpleDataSetInformationDTO ds1 = dataSet(1, 10 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds2 = dataSet(2, 10 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds3 = dataSet(3, 12 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds4 = dataSet(4, 11 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds5 = dataSet(5, 14 * FileUtils.ONE_GB);
+        SimpleDataSetInformationDTO ds1 = dataSet(1, 10 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds2 = dataSet(2, 10 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds3 = dataSet(3, 12 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds4 = dataSet(4, 11 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds5 = dataSet(5, 14 * FileUtils.ONE_GB, AVAILABLE);
         Share share = new Share(shareFolder, 0, freeSpaceProvider);
         share.setUnarchivingScratchShare(true);
         share.addDataSet(ds5);
@@ -210,13 +213,15 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
     @Test
     public void testFreeSpaceForThreeDataSetsOneAlreadyInShare()
     {
-        SimpleDataSetInformationDTO ds1 = dataSet(1, 10 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds2 = dataSet(2, 10 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds3 = dataSet(3, 12 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds4 = dataSet(4, 11 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds5 = dataSet(5, 14 * FileUtils.ONE_GB);
+        SimpleDataSetInformationDTO ds0 = dataSet(0, 19 * FileUtils.ONE_GB, ARCHIVED);
+        SimpleDataSetInformationDTO ds1 = dataSet(1, 10 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds2 = dataSet(2, 10 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds3 = dataSet(3, 12 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds4 = dataSet(4, 11 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds5 = dataSet(5, 14 * FileUtils.ONE_GB, AVAILABLE);
         Share share = new Share(shareFolder, 0, freeSpaceProvider);
         share.setUnarchivingScratchShare(true);
+        share.addDataSet(ds0);
         share.addDataSet(ds5);
         share.addDataSet(ds3);
         share.addDataSet(ds1);
@@ -247,11 +252,11 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
     @Test
     public void testFreeSpaceRemovingDataSetsButStillNotEnoughFreeSpace()
     {
-        SimpleDataSetInformationDTO ds1 = dataSet(1, 10 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds2 = dataSet(2, 10 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds3 = dataSet(3, 12 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds4 = dataSet(4, 11 * FileUtils.ONE_GB);
-        SimpleDataSetInformationDTO ds5 = dataSet(5, 14 * FileUtils.ONE_GB);
+        SimpleDataSetInformationDTO ds1 = dataSet(1, 10 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds2 = dataSet(2, 10 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds3 = dataSet(3, 12 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds4 = dataSet(4, 11 * FileUtils.ONE_GB, AVAILABLE);
+        SimpleDataSetInformationDTO ds5 = dataSet(5, 14 * FileUtils.ONE_GB, AVAILABLE);
         Share share = new Share(shareFolder, 0, freeSpaceProvider);
         share.setUnarchivingScratchShare(true);
         share.addDataSet(ds3);
@@ -841,12 +846,14 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
         return result;
     }
 
-    private SimpleDataSetInformationDTO dataSet(int id, long size)
+    private SimpleDataSetInformationDTO dataSet(int id, long size, DataSetArchivingStatus status)
     {
         File dsFile = new File(shareFolder, "abc/ds-" + id);
         dsFile.mkdirs();
         FileUtilities.writeToFile(new File(dsFile, "read.me"), id + " nice works!");
-        return dataSet(dsFile, DATA_STORE_CODE, size);
+        SimpleDataSetInformationDTO dataSet = dataSet(dsFile, DATA_STORE_CODE, size);
+        dataSet.setStatus(status);
+        return dataSet;
     }
 
     private SimpleDataSetInformationDTO dataSet(File dataSetFile, String dataStoreCode, Long size)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SimpleDataSetInformationDTO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SimpleDataSetInformationDTO.java
index 9a1aad195b4734b379989bba9c6534adf981a236..42c31e37d2b18c00edd13576e19177fbe426f0cf 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SimpleDataSetInformationDTO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SimpleDataSetInformationDTO.java
@@ -21,6 +21,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
 
@@ -40,6 +41,8 @@ public class SimpleDataSetInformationDTO implements Serializable, IDatasetLocati
     private String dataSetShareId;
 
     private String dataSetLocation;
+    
+    private DataSetArchivingStatus status;
 
     private Date registrationTimestamp;
     
@@ -128,6 +131,16 @@ public class SimpleDataSetInformationDTO implements Serializable, IDatasetLocati
         this.dataSetLocation = dataSetLocation;
     }
 
+    public DataSetArchivingStatus getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(DataSetArchivingStatus status)
+    {
+        this.status = status;
+    }
+
     public Date getRegistrationTimestamp()
     {
         return registrationTimestamp;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelper.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelper.java
index 2e603cceee449fde165d59b89a7ab19e40161e69..13d627a256d6e7d57625b1c493297c6a531800a0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelper.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SimpleDataSetHelper.java
@@ -64,6 +64,7 @@ public class SimpleDataSetHelper
         result.setSpeedHint(data.getSpeedHint());
         result.setDataSetShareId(data.getShareId());
         result.setDataSetLocation(data.getLocation());
+        result.setStatus(data.getStatus());
         result.setDataSetSize(data.getSize());
         result.setDatabaseInstanceCode(data.getExperiment().getProject().getSpace().getInstance()
                 .getCode());