diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java
index 4173d0c4f32e739a75e736ba2c23e10c2cfb3df9..e5101b667e2e41129344b5d38c7a4787cec3761e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java
@@ -322,11 +322,8 @@ public class Client implements EntryPoint, ValueChangeHandler<String>
                     GWTUtils.setConfirmExitMessage();
                 }
 
-                DisplaySettings displaySettings =
-                        viewContext.getModel().getSessionContext().getDisplaySettings();
-                String lastHistoryOrNull = displaySettings.getLastHistoryTokenOrNull();
-                if (viewContext.isSimpleMode() == false && StringUtils.isBlank(History.getToken())
-                        && StringUtils.isBlank(lastHistoryOrNull) == false)
+                String lastHistoryOrNull = tryGetLastHistoryToken();
+                if (lastHistoryOrNull != null)
                 {
                     History.newItem(lastHistoryOrNull);
                 } else
@@ -335,6 +332,24 @@ public class Client implements EntryPoint, ValueChangeHandler<String>
                 }
             }
         }
+
+        @SuppressWarnings("deprecation")
+        private String tryGetLastHistoryToken()
+        {
+            if (viewContext.isSimpleMode() == false && StringUtils.isBlank(History.getToken()))
+            {
+                DisplaySettings displaySettings =
+                        viewContext.getModel().getSessionContext().getDisplaySettings();
+                if (displaySettings.isIgnoreLastHistoryToken())
+                {
+                    return null;
+                } else
+                {
+                    return displaySettings.getLastHistoryTokenOrNull();
+                }
+            }
+            return null;
+        }
     }
 
     /**
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
index cc95e89a67619e128e79b7a1170c3e616e72b175..6332612f305c22d3b9bf02e1fc00dd30ae935662 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
@@ -861,6 +861,10 @@ public abstract class Dict
 
     public static final String DEBUGGING_MODE_INFO = "debugging_mode_info";
 
+    public static final String REOPEN_LAST_TAB_ON_LOGIN_LABEL = "reopen_last_tab_on_login_label";
+
+    public static final String REOPEN_LAST_TAB_ON_LOGIN_INFO = "reopen_last_tab_on_login_info";
+
     //
     // Help Info
     //
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
index f5fb6d65f1c265370c953aa66f1f946baf28f601..f8168512503d67eac32c2707a8c9d24d9756e6e9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
@@ -492,6 +492,18 @@ public class DisplaySettingsManager
         displaySettings.setDebuggingModeEnabled(isDebugging);
     }
 
+    @SuppressWarnings("deprecation")
+    public final boolean isReopenLastTabOnLogin()
+    {
+        return displaySettings.isIgnoreLastHistoryToken() == false;
+    }
+
+    @SuppressWarnings("deprecation")
+    public final void setReopenLastTabOnLogin(boolean isReopen)
+    {
+        displaySettings.setIgnoreLastHistoryToken(isReopen == false);
+    }
+
     @SuppressWarnings("deprecation")
     public final RealNumberFormatingParameters getRealNumberFormatingParameters()
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LastHistoryTokenUpdater.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LastHistoryTokenUpdater.java
index 60aa1457af8b1caf08705c1d17cdacc360b94edb..ff43530274670868f5ff574285e1d86ef8b40ea5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LastHistoryTokenUpdater.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/LastHistoryTokenUpdater.java
@@ -31,6 +31,7 @@ class LastHistoryTokenUpdater
         this.viewContext = viewContext;
     }
 
+    @SuppressWarnings("deprecation")
     public void update(String historyToken)
     {
         DisplaySettings displaySettings =
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/user/ChangeUserSettingsDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/user/ChangeUserSettingsDialog.java
index b0b4f9d32c77fb9b925121889d864822d5bc1ff3..16a29ac475dc520b449d3e78e0b0a7e7e1f1e7d2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/user/ChangeUserSettingsDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/user/ChangeUserSettingsDialog.java
@@ -66,6 +66,8 @@ public class ChangeUserSettingsDialog extends AbstractSaveDialog
 
     private final SpaceSelectionWidget homeSpaceField;
 
+    private final CheckBoxField reopenLastTabField;
+
     private final CheckBoxField useWildcardSearchModeCheckbox;
 
     private final FieldSet formatingFields;
@@ -90,6 +92,7 @@ public class ChangeUserSettingsDialog extends AbstractSaveDialog
         // setHeight(250);
 
         addField(homeSpaceField = createHomeGroupField());
+        addField(reopenLastTabField = createReopenLastTabOnLoginField());
         addField(useWildcardSearchModeCheckbox = createUseWildcardSearchModeField());
         formatingFields = createRealFormatingFieldSet();
         precisionField = createPrecisionField();
@@ -118,6 +121,19 @@ public class ChangeUserSettingsDialog extends AbstractSaveDialog
         return field;
     }
 
+    private CheckBoxField createReopenLastTabOnLoginField()
+    {
+        CheckBoxField field =
+                new CheckBoxField(viewContext.getMessage(Dict.REOPEN_LAST_TAB_ON_LOGIN_LABEL),
+                        false);
+        AbstractImagePrototype infoIcon =
+                AbstractImagePrototype.create(viewContext.getImageBundle().getInfoIcon());
+        FieldUtil.addInfoIcon(field, viewContext.getMessage(Dict.REOPEN_LAST_TAB_ON_LOGIN_INFO),
+                infoIcon.createImage());
+        field.setValue(viewContext.getDisplaySettingsManager().isReopenLastTabOnLogin());
+        return field;
+    }
+
     private final CheckBoxField createUseWildcardSearchModeField()
     {
         CheckBoxField field =
@@ -140,6 +156,7 @@ public class ChangeUserSettingsDialog extends AbstractSaveDialog
         formatingParameters.setFormatingEnabled(formatingFields.isExpanded());
         formatingParameters.setPrecision(precisionField.getValue().intValue());
         formatingParameters.setScientific(scientificFormatingField.getValue());
+
         DisplaySettingsManager displaySettingsManager = viewContext.getDisplaySettingsManager();
         boolean useWildcardSearchMode = extractUseWildcardSearchMode();
         displaySettingsManager.updateUseWildcardSearchMode(useWildcardSearchMode);
@@ -147,6 +164,9 @@ public class ChangeUserSettingsDialog extends AbstractSaveDialog
         boolean debuggingModeEnabled = debuggingModeField.getValue();
         displaySettingsManager.setDebuggingModeEnabled(debuggingModeEnabled);
 
+        boolean restoreLastTab = reopenLastTabField.getValue();
+        displaySettingsManager.setReopenLastTabOnLogin(restoreLastTab);
+
         displaySettingsManager.storeSettings();
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
index 63058789163791569b139735a58a4afc7fdb7538..cd0ee1186b77cb4ece068c0f28b5cdee08490744 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
@@ -24,7 +24,7 @@ import java.util.Map;
 import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
- * Class storing personalised display settings. This class implements {@link Serializable} not only
+ * Class storing personalized display settings. This class implements {@link Serializable} not only
  * for transferring it's content remotely but also to store it in the database. Thus, CHANGES IN
  * THIS CLASS MIGHT LEAD TO A LOST OF PERSONAL SETTINGS. In all cases deserialization leads to an
  * exception the default settings is used.
@@ -60,6 +60,8 @@ public class DisplaySettings implements ISerializable
 
     private String lastHistoryTokenOrNull;
 
+    private boolean ignoreLastHistoryToken = false;
+
     private RealNumberFormatingParameters realNumberFormatingParameters =
             new RealNumberFormatingParameters();
 
@@ -225,14 +227,32 @@ public class DisplaySettings implements ISerializable
         debugging = isDebugging;
     }
 
+    /** @deprecated Should be used only by DisplaySettingsManager. */
+    @Deprecated
     public String getLastHistoryTokenOrNull()
     {
         return lastHistoryTokenOrNull;
     }
 
+    /** @deprecated Should be used only by DisplaySettingsManager. */
+    @Deprecated
     public void setLastHistoryTokenOrNull(String lastHistoryOrNull)
     {
         this.lastHistoryTokenOrNull = lastHistoryOrNull;
     }
 
+    /** @deprecated Should be used only by DisplaySettingsManager. */
+    @Deprecated
+    public boolean isIgnoreLastHistoryToken()
+    {
+        return ignoreLastHistoryToken;
+    }
+
+    /** @deprecated Should be used only by DisplaySettingsManager. */
+    @Deprecated
+    public void setIgnoreLastHistoryToken(boolean ignoreLastHistoryToken)
+    {
+        this.ignoreLastHistoryToken = ignoreLastHistoryToken;
+    }
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
index fc0341024d631cdfae68a24d6b380c45e9658057..d27e0acc9c5a9a31da6460505985471287b930d7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
@@ -487,6 +487,8 @@ var common = {
   real_number_formating_precision: "Precision",
   debugging_mode: "Enable Debugging Mode",
   debugging_mode_info: "This mode is for advanced users. When enabled information like detailed error messages useful e.g. when debugging scripts invoked by openbis will be shown.",
+  reopen_last_tab_on_login_label: "Reopen Last Tab",
+  reopen_last_tab_on_login_info: "Check to reopen last opened tab after login. Note, that it works only if you enter openBIS with URL to the welcome page.",
     
   //
   // Role View