diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java
index e2cd3d1ac93a0affe7a405affba930e1a7ac783e..75c13b85acf4ecf055599ef1993b8af9edd7bfbc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java
@@ -33,8 +33,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetType;
  */
 public final class IdentifiedDataStrategy implements IDataStoreStrategy
 {
-    private static final String IDENTIFIED_DIRECTORY_NAME = "identified";
-
     static final String DATA_SET_TYPE_PREFIX = "DataSetType_";
 
     static final String UNEXPECTED_PATHS_MSG_FORMAT =
@@ -61,19 +59,13 @@ public final class IdentifiedDataStrategy implements IDataStoreStrategy
      * Note that this method does not call {@link File#mkdirs()} on returned <code>File</code>.
      * </p>
      */
-    private final static File createBaseDirectory(final File baseDir,
-            final DataSetInformation dataSetInfo, final DataSetType dataSetType)
-    {
-        String dataSetCode = dataSetInfo.getDataSetCode();
-        return createBaseDirectory(baseDir, dataSetCode);
-
-    }
-
     @Private
-    static File createBaseDirectory(final File baseDir, String dataSetCode)
+    static File createBaseDirectory(final File baseDir, final DataSetInformation dataSetInfo)
     {
-        final File mainDir = new File(baseDir, IDENTIFIED_DIRECTORY_NAME);
-        final File shardingDir = createShardingDir(mainDir, dataSetCode);
+        String dataSetCode = dataSetInfo.getDataSetCode();
+        final String instanceUUID = dataSetInfo.getInstanceUUID();
+        final File instanceDir = new File(baseDir, instanceUUID);
+        final File shardingDir = createShardingDir(instanceDir, dataSetCode);
         final File datasetDir = new File(shardingDir, dataSetCode);
         return datasetDir;
     }
@@ -104,8 +96,7 @@ public final class IdentifiedDataStrategy implements IDataStoreStrategy
     {
         assert storeRoot != null : "Store root can not be null";
         assert dataSetInfo != null : "Data set information can not be null";
-        assert dataSetType != null : "Data set type can not be null";
-        final File baseDirectory = createBaseDirectory(storeRoot, dataSetInfo, dataSetType);
+        final File baseDirectory = createBaseDirectory(storeRoot, dataSetInfo);
         if (baseDirectory.exists())
         {
             throw EnvironmentFailureException.fromTemplate(STORAGE_LAYOUT_ERROR_MSG_PREFIX
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java
index 3ca1c3f579691654c5b0b3a305d19f5046646273..3cf0e61e330171b6c9442fb87f1e7b8842f8476c 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java
@@ -97,7 +97,7 @@ public class IdentifiedDataStrategyTest extends AbstractFileSystemTestCase
         assertTrue("Null values not permited here", exceptionThrown);
         final DataSetInformation dataSetInfo = createDataSetInfo();
         File baseDirectory = strategy.getBaseDirectory(workingDirectory, dataSetInfo, dataSetType);
-        final File file = new File(workingDirectory, "identified/27/35/33/data-set-code");
+        final File file = new File(workingDirectory, "1111-2222/27/35/33/data-set-code");
         assertEquals(file, baseDirectory);
         assertTrue(baseDirectory.exists() == false);
         // Create a file instead of a directory
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
index 0fc18e3f57396a769589c197c47280e3b0e96179..9eb8cebcf8ebb106d4002d638cc49835b8fb5b9c 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
@@ -113,8 +113,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
 
     private static final Date DATA_PRODUCTION_DATE = new Date(2001);
 
-    private static final String EXAMPLE_PROCESSOR_ID =
-            ProcedureTypeCode.DATA_ACQUISITION.getCode();
+    private static final String EXAMPLE_PROCESSOR_ID = ProcedureTypeCode.DATA_ACQUISITION.getCode();
 
     private static final class ExternalDataMatcher extends BaseMatcher<ExternalData>
     {
@@ -292,7 +291,8 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
         dataSetInformation.setProductionDate(DATA_PRODUCTION_DATE);
         dataSetInformation.setDataSetCode(DATA_SET_CODE);
         dataSetInformation.setParentDataSetCode(PARENT_DATA_SET_CODE);
-        targetFolder = IdentifiedDataStrategy.createBaseDirectory(workingDirectory, DATA_SET_CODE);
+        targetFolder =
+                IdentifiedDataStrategy.createBaseDirectory(workingDirectory, dataSetInformation);
         targetData1 = createTargetData(data1);
         logRecorder = new BufferedAppender("%-5p %c - %m%n", Level.INFO);
     }
@@ -427,10 +427,10 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
 
                     one(typeExtractor).getFileFormatType(dataSet);
                     will(returnValue(FILE_FORMAT_TYPE));
-                    
+
                     one(typeExtractor).getProcessorType(dataSet);
                     will(returnValue(EXAMPLE_PROCESSOR_ID));
-                    
+
                     one(typeExtractor).isMeasuredData(dataSet);
                     will(returnValue(true));
                 }
@@ -529,8 +529,8 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
     @Test
     public final void testBaseDirectoryCouldNotBeCreated() throws IOException
     {
-        FileUtils
-                .touch(IdentifiedDataStrategy.createBaseDirectory(workingDirectory, DATA_SET_CODE));
+        FileUtils.touch(IdentifiedDataStrategy.createBaseDirectory(workingDirectory,
+                dataSetInformation));
         prepareForStrategyIDENTIFIED(data1, null, createBaseExperiment(dataSetInformation));
         try
         {
@@ -723,7 +723,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
 
                     one(processorFactory).createProcessor();
                     will(returnValue(processor));
-                    
+
                     allowing(processor).getRequiredInputDataFormat();
                     will(returnValue(StorageFormat.PROPRIETARY));