diff --git a/datastore_server/resource/test-data/ShareFactoryTest/share-2/share.properties b/datastore_server/resource/test-data/ShareFactoryTest/share-2/share.properties
index fa4469b777f5c4314e279369579d742712756abe..84b30490d94be6ac7ff37c5129d2e6c45b2889a4 100644
--- a/datastore_server/resource/test-data/ShareFactoryTest/share-2/share.properties
+++ b/datastore_server/resource/test-data/ShareFactoryTest/share-2/share.properties
@@ -1,2 +1,3 @@
 shuffle-priority=MOVE_TO_EXTENSION
-withdraw-share = true
\ No newline at end of file
+withdraw-share = true
+ignored-for-shuffling = true
\ No newline at end of file
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 cb8e083787eb7c686ae6378ef48f15a73cdfdd01..79e2cb1b1a3d738c85cf0f3fe69e14f165fc975d 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
@@ -224,7 +224,10 @@ public class SegmentedStoreUtils
         {
             final Share share =
                     new ShareFactory().createShare(sharesHolder, file, freeSpaceProvider, log);
-            shares.put(share.getShareId(), share);
+            if (share.isIgnoredForShuffling() == false)
+            {
+                shares.put(share.getShareId(), share);
+            }
         }
         return shares;
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Share.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Share.java
index f810068fdcbabc21d7d8ed8d8d44c57113f30c16..272d6fc947a1b60fed03d36c7f17d5282825c807 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Share.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/Share.java
@@ -88,6 +88,8 @@ public final class Share
     private ShufflePriority shufflePriority = ShufflePriority.SPEED;
 
     private boolean withdrawShare;
+    
+    private boolean ignoredForShuffling;
 
     private Set<String> experimentIdentifiers;
 
@@ -226,4 +228,14 @@ public final class Share
     {
         this.withdrawShare = withdrawShare;
     }
+
+    public boolean isIgnoredForShuffling()
+    {
+        return ignoredForShuffling;
+    }
+
+    public void setIgnoredForShuffling(boolean ignoredForShuffling)
+    {
+        this.ignoredForShuffling = ignoredForShuffling;
+    }
 }
\ No newline at end of file
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactory.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactory.java
index 150281ed50bdcd9960d510b667b5fe0ede6ee8ab..756e88674866cd305c8a8f8052fb07d5fa5529b0 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactory.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactory.java
@@ -59,6 +59,8 @@ public class ShareFactory
     static final String SHUFFLE_PRIORITY_PROP = "shuffle-priority";
 
     public static final String WITHDRAW_SHARE_PROP = "withdraw-share";
+    
+    public static final String IGNORED_FOR_SHUFFLING_PROP = "ignored-for-shuffling";
 
     public static final String EXPERIMENTS_PROP = "experiments";
 
@@ -68,6 +70,8 @@ public class ShareFactory
 
     private boolean withdrawShare;
 
+    private boolean ignoredForShuffling;
+    
     private Set<String> experimentIdentifiers = Collections.emptySet();
 
     Share createShare(final SharesHolder sharesHolder, File shareRoot,
@@ -78,6 +82,7 @@ public class ShareFactory
         Share share = new Share(sharesHolder, shareRoot, speed, freeSpaceProvider);
         share.setShufflePriority(shufflePriority);
         share.setWithdrawShare(withdrawShare);
+        share.setIgnoredForShuffling(ignoredForShuffling);
         share.setExperimentIdentifiers(experimentIdentifiers);
         return share;
 
@@ -143,6 +148,7 @@ public class ShareFactory
             }
 
             withdrawShare = PropertyUtils.getBoolean(props, WITHDRAW_SHARE_PROP, false);
+            ignoredForShuffling = PropertyUtils.getBoolean(props, IGNORED_FOR_SHUFFLING_PROP, false);
             experimentIdentifiers =
                     new HashSet<String>(Arrays.asList(PropertyParametersUtil.parseItemisedProperty(
                             props.getProperty(EXPERIMENTS_PROP, ""), EXPERIMENTS_PROP)));
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 7b6057d25df898c0bf339bc0038a557105e90e95..e08fe0e180a159a16e32d1e8630482fb116fd411 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
@@ -458,7 +458,8 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
         incomingFolder.mkdirs();
         File share1 = new File(store, "1");
         share1.mkdirs();
-        FileUtilities.writeToFile(new File(share1, "share.properties"), "withdraw-share = true");
+        FileUtilities.writeToFile(new File(share1, "share.properties"),
+                ShareFactory.WITHDRAW_SHARE_PROP + " = true");
 
         String share = SegmentedStoreUtils.findIncomingShare(incomingFolder, store, log);
 
@@ -470,6 +471,40 @@ public class SegmentedStoreUtilsTest extends AbstractFileSystemTestCase
                         + "withdraw-share is set to true.\n", log.toString());
     }
 
+    @Test
+    public void testFindIncomingShareToBeIgnoredInShuffling()
+    {
+        File incomingFolder = new File(workingDirectory, "incoming");
+        incomingFolder.mkdirs();
+        File share1 = new File(store, "1");
+        share1.mkdirs();
+        FileUtilities.writeToFile(new File(share1, "share.properties"),
+                ShareFactory.IGNORED_FOR_SHUFFLING_PROP + " = true");
+        
+        String share = SegmentedStoreUtils.findIncomingShare(incomingFolder, store, log);
+        
+        assertEquals("1", share);
+        assertEquals("", log.toString());
+    }
+    
+    @Test
+    public void testGetShares()
+    {
+        File share1 = new File(store, "1");
+        share1.mkdirs();
+        FileUtilities.writeToFile(new File(share1, "share.properties"),
+                ShareFactory.IGNORED_FOR_SHUFFLING_PROP + " = true");
+        File share2 = new File(store, "2");
+        share2.mkdirs();
+        
+        List<Share> shares =
+                SegmentedStoreUtils.getSharesWithDataSets(store, DATA_STORE_CODE,
+                        freeSpaceProvider, service, log, timeProvider);
+        
+        assertEquals("2", shares.get(0).getShareId());
+        assertEquals(1, shares.size());
+    }
+
     private File dataSetFile(String shareId, boolean empty)
     {
         File share = new File(store, shareId);
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactoryTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactoryTest.java
index 765b3bb37b83a87fe4c5e98b2c250f1259b7dd29..858949a91a0e733553e6f049b8b2663e629eb9c9 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactoryTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/ShareFactoryTest.java
@@ -41,6 +41,7 @@ public class ShareFactoryTest extends AssertJUnit
         assertEquals(70, share.getSpeed());
         assertEquals(ShufflePriority.SPEED, share.getShufflePriority());
         assertEquals(false, share.isWithdrawShare());
+        assertEquals(false, share.isIgnoredForShuffling());
     }
 
     @Test
@@ -50,6 +51,7 @@ public class ShareFactoryTest extends AssertJUnit
         assertEquals(12, share.getSpeed());
         assertEquals(ShufflePriority.MOVE_TO_EXTENSION, share.getShufflePriority());
         assertEquals(true, share.isWithdrawShare());
+        assertEquals(true, share.isIgnoredForShuffling());
         assertEquals(0, share.getExperimentIdentifiers().size());
     }
 
@@ -72,6 +74,7 @@ public class ShareFactoryTest extends AssertJUnit
         assertEquals(12, share.getSpeed());
         assertEquals(ShufflePriority.SPEED, share.getShufflePriority());
         assertEquals(false, share.isWithdrawShare());
+        assertEquals(false, share.isIgnoredForShuffling());
         assertEquals(0, share.getExperimentIdentifiers().size());
     }