diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTask.java
index be70e756b0edaadfb6d45e671e73081fdd50a472..4d09159f259dd3717599b232a52525a475649f5a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTask.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTask.java
@@ -203,6 +203,12 @@ public class EagerShufflingTask extends AbstractPostRegistrationTaskForPhysicalD
                     SegmentedStoreUtils.getSharesWithDataSets(storeRoot, dataStoreCode, FilterOptions.AVAILABLE_FOR_SHUFFLING,
                             incomingShares, freeSpaceProvider, service, logger);
             dataSet = findDataSet(shares, dataSetCode);
+            if (dataSet.getStatus().isAvailable() == false)
+            {
+                logger.log(LogLevel.WARN, "Data set " + dataSetCode + " couldn't been shuffled because "
+                        + "its archiving status is " + dataSet.getStatus());
+                return new NoCleanupTask();
+            }
             shareWithMostFreeOrNull = finder.tryToFindShare(dataSet, shares);
             if (shareWithMostFreeOrNull == null)
             {
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTaskTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTaskTest.java
index ba043a332a6dfbbd46b0920502bfa014a4f043ae..6e77c00ab9c975022184f1dc77bea0f0e71f8344 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTaskTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/postregistration/EagerShufflingTaskTest.java
@@ -45,6 +45,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IShareIdManager;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.MockFreeSpaceProvider;
 import ch.systemsx.cisd.openbis.generic.shared.Constants;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
 import ch.systemsx.cisd.openbis.util.LogRecordingUtils;
 
@@ -59,6 +60,8 @@ public class EagerShufflingTaskTest extends AbstractFileSystemTestCase
     private static final String DATA_STORE_SERVER_CODE = "DSS";
 
     private static final String DATA_SET_CODE1 = "ds-1";
+    
+    private static final String DATA_SET_CODE2 = "ds-2";
 
     private BufferedAppender logRecorder;
 
@@ -239,6 +242,27 @@ public class EagerShufflingTaskTest extends AbstractFileSystemTestCase
         assertEquals("[1, 2, 3, 4, 2, 2]", freeSpaceProvider.getShares().toString());
         context.assertIsSatisfied();
     }
+    
+    @Test
+    public void testShufflingOfArchivedDataSet()
+    {
+        prepareConfigProvider();
+        Properties properties = createDefaultProperties();
+        properties.setProperty(EagerShufflingTask.FREE_SPACE_LIMIT_KEY, "1");
+        properties.setProperty(EagerShufflingTask.VERIFY_CHECKSUM_KEY, "false");
+        EagerShufflingTask task = createTask(properties);
+        freeSpaceProvider.setFreeSpaceValues(200, 1234, 10, 0, 1234, 900);
+        prepareListDataSets();
+        RecordingMatcher<String> infoMessageMatcher = prepareLogging(LogLevel.WARN);
+        
+        IPostRegistrationTaskExecutor executor = task.createExecutor(DATA_SET_CODE2, false);
+        executor.createCleanupTask();
+        executor.execute();
+        
+        assertEquals("Data set ds-2 couldn't been shuffled because its archiving status is ARCHIVE_PENDING",
+                infoMessageMatcher.recordedObject());
+        context.assertIsSatisfied();
+    }
 
     @Test
     public void testStopOnNoShareFound()
@@ -291,7 +315,10 @@ public class EagerShufflingTaskTest extends AbstractFileSystemTestCase
             {
                 {
                     one(service).listPhysicalDataSets();
-                    will(returnValue(Arrays.asList(dataSet("1", DATA_SET_CODE1))));
+                    SimpleDataSetInformationDTO ds1 = dataSet("1", DATA_SET_CODE1);
+                    SimpleDataSetInformationDTO ds2 = dataSet("2", DATA_SET_CODE2);
+                    ds2.setStatus(DataSetArchivingStatus.ARCHIVE_PENDING);
+                    will(returnValue(Arrays.asList(ds1, ds2)));
                     one(logger).log(
                             with(LogLevel.INFO),
                             with(Matchers.startsWith("Obtained the list of all "
@@ -334,6 +361,7 @@ public class EagerShufflingTaskTest extends AbstractFileSystemTestCase
         dataSet.setDataSetLocation(SHARDING + dataSetCode);
         dataSet.setDataSetSize(47 * FileUtils.ONE_KB);
         dataSet.setSpeedHint(Constants.DEFAULT_SPEED_HINT);
+        dataSet.setStatus(DataSetArchivingStatus.AVAILABLE);
         return dataSet;
     }