diff --git a/screening/resource/test-data/SimpleImageDropboxTest/1_1_DAPI_Default.png b/screening/resource/test-data/SimpleImageDropboxTest/1_1_DAPI_Default.png
new file mode 100644
index 0000000000000000000000000000000000000000..38e8bbd20a411bcd2436fdc3c41b075f920bebb8
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/1_1_DAPI_Default.png differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/1_1_Merged_Default.png b/screening/resource/test-data/SimpleImageDropboxTest/1_1_Merged_Default.png
new file mode 100644
index 0000000000000000000000000000000000000000..c017a3ee60ce2d1ad8f65ef224d6b3992d5e331b
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/1_1_Merged_Default.png differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/1_3_DAPI_CY3_256x191.png b/screening/resource/test-data/SimpleImageDropboxTest/1_3_DAPI_CY3_256x191.png
new file mode 100644
index 0000000000000000000000000000000000000000..c118f2bfe6786efd025a885f3e52ec0537dc99b0
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/1_3_DAPI_CY3_256x191.png differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_Cy3.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_Cy3.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..5ed0cb95beb32e230208526a850ba7ecc4b219fd
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_Cy3.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_DAPI.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_DAPI.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..e443228f882448234de6fe18bf4f5e87c13ec442
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_DAPI.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_GFP.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_GFP.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..51eb829078b9c95c68fd404916dc0029a1afd035
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_01_GFP.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_Cy3.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_Cy3.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..a063b41d48675a4a6cf0cc85f11dbff94d450a64
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_Cy3.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_DAPI.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_DAPI.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..d150319c21666f40b6e48808096c3f88c8749d58
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_DAPI.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_GFP.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_GFP.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..3e1443c3ced183528919d464346511743a91fa2d
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_02_GFP.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_Cy3.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_Cy3.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..2b1d50d22997faed0d68174cb6521f6e43e947eb
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_Cy3.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_DAPI.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_DAPI.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..1a929ee27f7a6ebae493b6aa48c5b5838ce7be74
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_DAPI.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_GFP.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_GFP.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..1d0a36b1ae5a1e2364acb5a81b8d1646ee9ec880
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_03_GFP.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_Cy3.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_Cy3.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..2fdf43adb9f6088dcec25443f9fd31b741c99588
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_Cy3.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_DAPI.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_DAPI.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..fc0839c77b2164ba29a898e2ec27ed57d909d8f7
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_DAPI.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_GFP.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_GFP.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..9634af8f73b3b838c90385882431d8289af77c1e
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_04_GFP.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_Cy3.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_Cy3.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..f115cb5caa837bb85547c5504e5ee50b44079d40
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_Cy3.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_DAPI.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_DAPI.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..2c98179049a60b710fee006659070d79b58d0096
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_DAPI.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_GFP.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_GFP.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..3128a5bb435748e2abf9ddaedd0618db2b2d3f47
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_05_GFP.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_Cy3.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_Cy3.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..c8cad6f59f16d8bffb5309957e1b55443aaca63a
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_Cy3.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_DAPI.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_DAPI.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..1e64bf3291bce3140a2933706fd11691e65b3969
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_DAPI.jpg differ
diff --git a/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_GFP.jpg b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_GFP.jpg
new file mode 100755
index 0000000000000000000000000000000000000000..d0478cb59f15e8e2b2f5a26b6505d452f2a0b51a
Binary files /dev/null and b/screening/resource/test-data/SimpleImageDropboxTest/PLATE1/PLATE1_A01_06_GFP.jpg differ
diff --git a/screening/sourceTest/core-plugins/SimpleImageDropboxTest/1/dss/drop-boxes/SimpleImageDropboxTest-drop-box/hcs-dropbox.py b/screening/sourceTest/core-plugins/SimpleImageDropboxTest/1/dss/drop-boxes/SimpleImageDropboxTest-drop-box/hcs-dropbox.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff5c73762570f2475ef219dbf644ea84e51618ba
--- /dev/null
+++ b/screening/sourceTest/core-plugins/SimpleImageDropboxTest/1/dss/drop-boxes/SimpleImageDropboxTest-drop-box/hcs-dropbox.py
@@ -0,0 +1,85 @@
+import os
+from ch.systemsx.cisd.openbis.dss.etl.dto.api.v1 import SimpleImageDataConfig
+from ch.systemsx.cisd.openbis.dss.etl.dto.api.v1 import ImageMetadata
+from ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto import Geometry
+
+SPACE_CODE = "TEST"
+PROJECT_CODE = "TEST-PROJECT"
+PROJECT_ID = "/%(SPACE_CODE)s/%(PROJECT_CODE)s" % vars()
+EXPERIMENT_CODE = "DEMO-EXP-HCS"
+EXPERIMENT_ID = "/%(SPACE_CODE)s/%(PROJECT_CODE)s/%(EXPERIMENT_CODE)s" % vars()
+
+PLATE_CODE = "PLATE1"
+PLATE_ID = "/%(SPACE_CODE)s/%(PLATE_CODE)s" % vars()
+PLATE_GEOMETRY_PROPERTY_CODE = "$PLATE_GEOMETRY"
+PLATE_GEOMETRY = "384_WELLS_16X24"
+
+
+def create_space_if_needed(transaction):
+    space = transaction.getSpace(SPACE_CODE)
+    if None == space:
+        space = transaction.createNewSpace(SPACE_CODE, None)
+        space.setDescription("A demo space")
+
+def create_project_if_needed(transaction):
+    project = transaction.getProject(PROJECT_ID)
+    if None == project:
+        create_space_if_needed(transaction)
+        project = transaction.createNewProject(PROJECT_ID)
+        project.setDescription("A demo project")
+        
+def create_experiment_if_needed(transaction):
+    """ Get the specified experiment or register it if necessary """
+    exp = transaction.getExperiment(EXPERIMENT_ID)
+    if None == exp:
+        create_project_if_needed(transaction)
+        print 'Creating new experiment : ' + EXPERIMENT_ID
+        exp = transaction.createNewExperiment(EXPERIMENT_ID, 'SIRNA_HCS')
+        exp.setPropertyValue('DESCRIPTION', 'A test experiment')
+    return exp
+    
+def create_plate_if_needed(transaction):
+    """ Get the specified sample or register it if necessary """
+
+    samp = transaction.getSample(PLATE_ID)
+
+    if None == samp:
+        exp = create_experiment_if_needed(transaction)
+        samp = transaction.createNewSample(PLATE_ID, 'PLATE')
+        samp.setPropertyValue(PLATE_GEOMETRY_PROPERTY_CODE, PLATE_GEOMETRY)
+        samp.setExperiment(exp)
+        
+    return samp
+
+     
+class MyImageDataSetConfig(SimpleImageDataConfig):
+    def extractImageMetadata(self, imagePath):
+     
+        basename = os.path.splitext(imagePath)[0]
+        (plate, well, tile, channelCode) = basename.split("_")
+         
+        image_tokens = ImageMetadata()
+        image_tokens.well = well
+        try:
+            image_tokens.tileNumber = int(tile)
+        except ValueError:
+            raise Exception("Cannot parse field number from '" + tile + "' in '" + basename + "' file name.")
+     
+        image_tokens.channelCode = channelCode
+        return image_tokens
+    
+    def getTileGeometry(self, imageTokens, maxTileNumber):
+        return Geometry.createFromRowColDimensions(maxTileNumber / 3, 3)    
+
+def process(transaction): 
+    incoming = transaction.getIncoming()
+    if incoming.isDirectory():
+        imageDataset = MyImageDataSetConfig()
+        imageDataset.setRawImageDatasetType()
+        imageDataset.setGenerateThumbnails(True)
+        imageDataset.setUseImageMagicToGenerateThumbnails(False)
+        imageDataset.addGeneratedImageRepresentationWithResolution("512x512")
+        plate = create_plate_if_needed(transaction)
+        dataset = transaction.createNewImageDataSet(imageDataset, incoming);
+        dataset.setSample(plate)
+        transaction.moveFile(incoming.getPath(), dataset);
diff --git a/screening/sourceTest/core-plugins/SimpleImageDropboxTest/1/dss/drop-boxes/SimpleImageDropboxTest-drop-box/plugin.properties b/screening/sourceTest/core-plugins/SimpleImageDropboxTest/1/dss/drop-boxes/SimpleImageDropboxTest-drop-box/plugin.properties
new file mode 100644
index 0000000000000000000000000000000000000000..50d92e632822afd673a407aced7285cb44b0ffa1
--- /dev/null
+++ b/screening/sourceTest/core-plugins/SimpleImageDropboxTest/1/dss/drop-boxes/SimpleImageDropboxTest-drop-box/plugin.properties
@@ -0,0 +1,13 @@
+# 
+# Drop box for HCS data sets 
+#
+# Variables:
+#   incoming-root-dir
+#     Path to the directory which contains incoming directories for drop boxes.
+incoming-dir = ${root-dir}/incoming-SimpleImageDropboxTest
+incoming-data-completeness-condition = auto-detection
+top-level-data-set-handler = ch.systemsx.cisd.openbis.dss.etl.jython.v2.JythonPlateDataSetHandlerV2
+script-path = hcs-dropbox.py
+storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
+storage-processor.data-source = imaging-db
+storage-processor.define-channels-per-experiment = false
diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AbstractScreeningSystemTestCase.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AbstractScreeningSystemTestCase.java
index 1c92e2390f246a3d67e8fa5e61f6c9a374519e6e..16c95b8b7031a774ea40145f4b27346a465bd071 100644
--- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AbstractScreeningSystemTestCase.java
+++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AbstractScreeningSystemTestCase.java
@@ -254,14 +254,14 @@ public abstract class AbstractScreeningSystemTestCase extends SystemTestCase
             ImageHistogram actualHistogram = ImageHistogram.calculateHistogram(actualImage);
             String expectedRenderedHistogram = expectedHistogram.renderAsASCIIChart(49, 9);
             String actualRenderedHistogram = actualHistogram.renderAsASCIIChart(49, 9);
-            if (expectedHistogram.equals(actualRenderedHistogram))
+            if (expectedRenderedHistogram.equals(actualRenderedHistogram))
             {
                 return;
             }
             // difference can be caused by a value close to discretization border. Thus try another height.
             expectedRenderedHistogram = expectedHistogram.renderAsASCIIChart(49, 10);
             actualRenderedHistogram = actualHistogram.renderAsASCIIChart(49, 10);
-            if (expectedHistogram.equals(actualRenderedHistogram))
+            if (expectedRenderedHistogram.equals(actualRenderedHistogram))
             {
                 return;
             }
diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/SimpleImageDropboxTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/SimpleImageDropboxTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..d91b9cbd238939cff0e042b6a554a6a41386d71c
--- /dev/null
+++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/SimpleImageDropboxTest.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2014 ETH Zuerich, SIS
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.screening.systemtests;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.commons.io.FileUtils;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExternalData;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetRelatedEntities;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory;
+
+/**
+ * 
+ *
+ * @author Franz-Josef Elmer
+ */
+public class SimpleImageDropboxTest extends AbstractScreeningSystemTestCase
+{
+
+    @BeforeTest
+    public void dropAnExampleDataSet() throws Exception
+    {
+        File exampleDataSet = createTestDataContents();
+        moveFileToIncoming(exampleDataSet);
+        waitUntilDataSetImported(FINISHED_POST_REGISTRATION_CONDITION);
+    }
+
+    private File createTestDataContents() throws IOException
+    {
+        File destination = new File(workingDirectory, "test-data");
+        destination.mkdirs();
+        FileUtils.copyDirectory(new File(getTestDataFolder(), "PLATE1"), destination);
+        return destination;
+    }
+
+    private String getTestDataFolder()
+    {
+        return "../screening/resource/test-data/" + getClass().getSimpleName();
+    }
+
+    @Override
+    protected int dataSetImportWaitDurationInSeconds()
+    {
+        return 60;
+    }
+    
+    @Test
+    public void test() throws Exception
+    {
+        ExperimentIdentifier identifier = ExperimentIdentifierFactory.parse("/TEST/TEST-PROJECT/DEMO-EXP-HCS");
+        Experiment experiment = commonServer.getExperimentInfo(sessionToken, identifier);
+        ListSampleCriteria sampleCriteria = ListSampleCriteria.createForExperiment(TechId.create(experiment));
+        List<Sample> samples = commonServer.listSamples(sessionToken, sampleCriteria);
+        Sample plate = samples.get(0);
+        assertEquals("/TEST/PLATE1", plate.getIdentifier());
+        assertEquals(1, samples.size());
+        List<AbstractExternalData> dataSets2 
+                = commonServer.listRelatedDataSets(sessionToken, new DataSetRelatedEntities(samples), false);
+        AbstractExternalData dataSet = dataSets2.get(0);
+        assertEquals(1, dataSets2.size());
+        ImageChecker imageChecker = new ImageChecker();
+        imageChecker.check(new File(getTestDataFolder(), "1_1_Merged_Default.png"), 
+                new ImageLoader(dataSet, sessionToken));
+        imageChecker.check(new File(getTestDataFolder(), "1_1_DAPI_Default.png"), 
+                new ImageLoader(dataSet, sessionToken).channel("DAPI"));
+        imageChecker.check(new File(getTestDataFolder(), "1_3_DAPI_CY3_256x191.png"), 
+                new ImageLoader(dataSet, sessionToken).tileColumn(3).channel("DAPI").channel("CY3").mode("thumbnail256x191"));
+        imageChecker.assertNoFailures();
+    }
+    
+}