diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureChooser.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureChooser.java
index c06040f87b0e3fda3b8183348e60f0fc17e88037..7f038694017f19f55e9128a38d7948d006bf5b4a 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureChooser.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/AnalysisProcedureChooser.java
@@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericCon
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 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.ScreeningDisplaySettingsManager;
 
 /**
  * An UI panel for selecting analysis procedures.
@@ -143,14 +144,24 @@ class AnalysisProcedureChooser extends HorizontalPanel
         }
     }
 
-    private void setInitialSelection(String analysisProcedureOrNull)
+    private void setInitialSelection(String value)
     {
+        String analysisProcedureOrNull = value;
+        if (StringUtils.isBlank(analysisProcedureOrNull))
+        {
+            analysisProcedureOrNull = getDefaultAnalysisProcedure();
+        }
+
         String comboBoxValue = analysisCodeToComboBoxValue(analysisProcedureOrNull);
-        if (UNSPECIFIED_ANALYSIS_PROCEDURE.equals(comboBoxValue))
+
+        if (UNSPECIFIED_ANALYSIS_PROCEDURE.equals(comboBoxValue)
+                || analysisProceduresComboBox.findModel(comboBoxValue) == null)
         {
             comboBoxValue = getFirstValueFromCombo();
         }
+
         analysisProceduresComboBox.setSimpleValue(comboBoxValue);
+
     }
 
     private String getFirstValueFromCombo()
@@ -161,15 +172,33 @@ class AnalysisProcedureChooser extends HorizontalPanel
     private void selectionChanged()
     {
         String selection = analysisProceduresComboBox.getSimpleValue();
-        notifySelectionListener(selection);
+        String analysisProcedureOrNull = comboBoxValueToAnalysisProcedure(selection);
+        notifySelectionListener(analysisProcedureOrNull);
+        setDefaultAnalysisProcedure(analysisProcedureOrNull);
     }
 
-    private void notifySelectionListener(String selection)
+    private void notifySelectionListener(String analysisProcedureOrNull)
     {
-        String analysisProcedureOrNull = comboBoxValueToAnalysisProcedure(selection);
         selectionListener.analysisProcedureSelected(analysisProcedureOrNull);
     }
 
+    private String getDefaultAnalysisProcedure()
+    {
+        ScreeningDisplaySettingsManager screeningDisplaySettingsManager =
+                new ScreeningDisplaySettingsManager(viewContext);
+        return screeningDisplaySettingsManager.getDefaultAnalysisProcedure();
+    }
+
+    private void setDefaultAnalysisProcedure(String analysisProcedureOrNull)
+    {
+        if (StringUtils.isNotBlank(analysisProcedureOrNull))
+        {
+            ScreeningDisplaySettingsManager screeningDisplaySettingsManager =
+                    new ScreeningDisplaySettingsManager(viewContext);
+            screeningDisplaySettingsManager.setDefaultAnalysisProcedure(analysisProcedureOrNull);
+        }
+    }
+
     private String analysisCodeToComboBoxValue(String analysisProcedureOrNull)
     {
         return StringUtils.isBlank(analysisProcedureOrNull) ? UNSPECIFIED_ANALYSIS_PROCEDURE