diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
index 1ae1bfe9685d7afbff7c6fb443f262b66a56fa65..ee5731fd110bac81d1ab9f7bd1761ec5a74bcd03 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
@@ -39,6 +39,9 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityReference;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
@@ -53,6 +56,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImagePara
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateMaterialsSearchCriteria;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellContent;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellContentWithExperiment;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellLocation;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.IHCSDatasetLoader;
 
@@ -79,6 +83,14 @@ public class GenePlateLocationsLoader
                 .getPlateLocations(geneMaterialId, experimentPermId, enrichWithImages);
     }
 
+    public static List<WellContentWithExperiment> load(Session session,
+            IScreeningBusinessObjectFactory businessObjectFactory, IDAOFactory daoFactory,
+            TechId geneMaterialId)
+    {
+        return new GenePlateLocationsLoader(session, businessObjectFactory, daoFactory)
+                .getPlateLocations(geneMaterialId);
+    }
+
     public static List<WellContent> load(Session session,
             IScreeningBusinessObjectFactory businessObjectFactory, IDAOFactory daoFactory,
             PlateMaterialsSearchCriteria materialCriteria, boolean enrichWithImages)
@@ -134,6 +146,12 @@ public class GenePlateLocationsLoader
         }
     }
 
+    private List<WellContentWithExperiment> getPlateLocations(TechId geneMaterialId)
+    {
+        List<WellContentWithExperiment> locations = loadLocations(geneMaterialId);
+        return locations;
+    }
+
     private List<WellContent> getPlateLocations(TechId geneMaterialId,
             ExperimentIdentifier experimentIdentifier, boolean enrichWithImages)
     {
@@ -345,6 +363,14 @@ public class GenePlateLocationsLoader
         return convert(locations);
     }
 
+    private List<WellContentWithExperiment> loadLocations(TechId geneMaterialId)
+    {
+        DataIterator<ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.WellContent> locations =
+                createDAO(daoFactory).getPlateLocationsForMaterialId(geneMaterialId.getId());
+
+        return convertWithExp(locations);
+    }
+
     private List<WellContent> loadLocations(TechId geneMaterialId,
             ExperimentIdentifier experimentIdentifier)
     {
@@ -369,7 +395,19 @@ public class GenePlateLocationsLoader
         return wellLocations;
     }
 
-    private static void sortByMaterialName(List<WellContent> wellLocations)
+    private List<WellContentWithExperiment> convertWithExp(
+            DataIterator<ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.WellContent> locations)
+    {
+        List<WellContentWithExperiment> wellLocations = new ArrayList<WellContentWithExperiment>();
+        for (ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.WellContent location : locations)
+        {
+            wellLocations.add(convertWithExp(location));
+        }
+        sortByMaterialName(wellLocations);
+        return wellLocations;
+    }
+
+    private static void sortByMaterialName(List<? extends WellContent> wellLocations)
     {
         Collections.sort(wellLocations, new Comparator<WellContent>()
             {
@@ -398,6 +436,32 @@ public class GenePlateLocationsLoader
         return new WellContent(location, well, plate, materialContent);
     }
 
+    private static WellContentWithExperiment convertWithExp(
+            ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.WellContent loc)
+    {
+        final WellLocation location = ScreeningUtils.tryCreateLocationFromMatrixCoordinate(loc.well_code);
+        final EntityReference well =
+                new EntityReference(loc.well_id, loc.well_code, loc.well_type_code,
+                        EntityKind.SAMPLE, loc.well_perm_id);
+        final EntityReference plate =
+                new EntityReference(loc.plate_id, loc.plate_code, loc.plate_type_code,
+                        EntityKind.SAMPLE, loc.plate_perm_id);
+        final EntityReference materialContent =
+                new EntityReference(loc.material_content_id, loc.material_content_code,
+                        loc.material_content_type_code, EntityKind.MATERIAL, null);
+        final Space space = new Space();
+        space.setCode(loc.space_code);
+        final Project project = new Project();
+        project.setSpace(space);
+        project.setCode(loc.proj_code);
+        final Experiment experiment = new Experiment();
+        experiment.setId(loc.exp_id);
+        experiment.setCode(loc.exp_code);
+        experiment.setPermId(loc.exp_perm_id);
+        experiment.setProject(project);
+        return new WellContentWithExperiment(location, well, plate, materialContent, experiment);
+    }
+
     private static IScreeningQuery createDAO(IDAOFactory daoFactory)
     {
         Connection connection = DatabaseContextUtils.getConnection(daoFactory);