diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ScreeningViewContext.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ScreeningViewContext.java
index e5ebbc639c11fb1fc093bfe695b9a23e5b667cfa..0504d4506634b868c1705ba08e4e071981c48a6b 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ScreeningViewContext.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ScreeningViewContext.java
@@ -1,5 +1,8 @@
 package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import com.google.gwt.core.client.GWT;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
@@ -14,6 +17,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.l
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.locator.ImagingMaterialLocatorResolver;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.locator.PlateMetadataBrowserLocatorResolver;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.locator.WellSearchLocatorResolver;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageDatasetEnrichedReference;
 
 /**
  * The <i>screening</i> plugin specific {@link IViewContext} implementation.
@@ -25,6 +29,9 @@ public final class ScreeningViewContext extends
 {
     private static final String TECHNOLOGY_NAME = "screening";
 
+    private Map<Long /*Plate Id*/, ImageDatasetEnrichedReference> currentlyViewedPlateToDataSetMap =
+            new HashMap<Long, ImageDatasetEnrichedReference>();
+
     public ScreeningViewContext(final IViewContext<ICommonClientServiceAsync> commonViewContext)
     {
         super(commonViewContext);
@@ -66,4 +73,15 @@ public final class ScreeningViewContext extends
         return new ScreeningDisplaySettingsManager(viewContext);
     }
 
+    public ImageDatasetEnrichedReference tryCurrentlyViewedPlateDataSet(Long plateId)
+    {
+        return currentlyViewedPlateToDataSetMap.get(plateId);
+    }
+
+    public void setCurrentlyViewedPlateDataSet(Long plateId,
+            ImageDatasetEnrichedReference dataSet)
+    {
+        currentlyViewedPlateToDataSetMap.put(plateId, dataSet);
+    }
+
 }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java
index 83c2196b2498f5a35fd125816dacb2cb622e0217..73ebc9af66e9eef358e181f0821fdd02e630ef7d 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageSampleSection.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.extjs.gxt.ui.client.Style.Scroll;
@@ -90,7 +91,8 @@ public class ImageSampleSection extends TabContent
     protected void showContent()
     {
         final ScreeningViewContext context = getViewContext();
-        add(new Text(context.getMessage(ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.LOAD_IN_PROGRESS)));
+        add(new Text(
+                context.getMessage(ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict.LOAD_IN_PROGRESS)));
         context.getService().getImageDatasetInfosForSample(sampleId,
                 isWell ? wellLocationOrNull : null, createDisplayImagesCallback(context));
     }
@@ -137,14 +139,37 @@ public class ImageSampleSection extends TabContent
             final ScreeningViewContext context = getViewContext();
             final LogicalImageLayouter logicalImageLayouter =
                     new LogicalImageLayouter(context, wellLocationOrNull, images);
+
+            ImageDatasetEnrichedReference viewedImageDataSet =
+                    context.tryCurrentlyViewedPlateDataSet(sampleId.getId());
+            ImageDatasetEnrichedReference currentImageDataSet = images.get(0).getImageDataset();
+
+            List<ImageDatasetEnrichedReference> list =
+                    new ArrayList<ImageDatasetEnrichedReference>();
+
+            if (null != viewedImageDataSet)
+            {
+                for (LogicalImageInfo imageInfos : images)
+                {
+                    ImageDatasetEnrichedReference ref = imageInfos.getImageDataset();
+                    if (ref.getId() == viewedImageDataSet.getId())
+                    {
+                        currentImageDataSet = ref;
+                    } else
+                    {
+                        list.add(ref);
+                    }
+                }
+            }
+            list.add(0, currentImageDataSet);
+
             final Widget imageDatasetsDetails =
                     new ImagingDatasetGuiUtils(context)
                             .createImageDatasetDetailsRow(
-                                    logicalImageLayouter.getDatasetImagesReferences(),
+                                    list,
                                     logicalImageLayouter);
 
-            ImageDatasetEnrichedReference firstImageDataset = images.get(0).getImageDataset();
-            logicalImageLayouter.changeDisplayedImageDataset(firstImageDataset);
+            logicalImageLayouter.changeDisplayedImageDataset(currentImageDataSet);
 
             add(imageDatasetsDetails, margins);
             add(logicalImageLayouter, margins);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java
index e7ecaddeaf6ead8c1278be4072e33eabbe125135..875a0a465d3970c51b7c615785ebf800f9093d9e 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java
@@ -57,6 +57,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.Dict;
+import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ScreeningViewContext;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.dto.LogicalImageChannelsReference;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.dto.LogicalImageReference;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.dto.WellData;
@@ -548,8 +549,41 @@ public class WellContentDialog extends ImageDialog
 
     private Widget createEntityLink(IEntityInformationHolderWithPermId entity, String label)
     {
-        final ClickHandler listener = new OpenEntityDetailsTabClickListener(entity, viewContext);
+        final ClickHandler listener =
+                new WellContentOpenEntityDetailsTabClickLister(entity, viewContext,
+                        this.imageDatasetOrNull);
         return LinkRenderer.getLinkWidget(label, listener);
     }
 
+    private static class WellContentOpenEntityDetailsTabClickLister extends
+            OpenEntityDetailsTabClickListener
+    {
+
+        private final ImageDatasetEnrichedReference currentDataSet;
+
+        private final ScreeningViewContext screeningViewContext;
+
+        /**
+         * @param entity
+         * @param viewContext
+         */
+        public WellContentOpenEntityDetailsTabClickLister(
+                IEntityInformationHolderWithPermId entity,
+                IViewContext<IScreeningClientServiceAsync> viewContext,
+                ImageDatasetEnrichedReference currentDataSet)
+        {
+            super(entity, viewContext);
+            this.currentDataSet = currentDataSet;
+            this.screeningViewContext = (ScreeningViewContext) viewContext;
+        }
+
+        @Override
+        public void onClick(ClickEvent event)
+        {
+            screeningViewContext.setCurrentlyViewedPlateDataSet(getEntity().getId(),
+                    currentDataSet);
+            super.onClick(event);
+        }
+    }
+
 }