diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientService.java
index 5f75e63cc53cfe1d7b5aa59b099b289fc0fd629a..c3b898297bc6ab63b76b586b443197e61ca3ebef 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientService.java
@@ -76,8 +76,8 @@ public interface IClientService extends RemoteService
     public void changeUserHomeGroup(TechId groupIdOrNull);
 
     /**
-     * Saves display settings and loggs out.
+     * Logs out the user, saving his/her {@link DisplaySettings} if necessary.
      */
-    public void logout(DisplaySettings displaySettings);
+    public void logout(DisplaySettings displaySettings, boolean simpleViewMode);
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientServiceAsync.java
index 758a230bebb0cb9f5b0b04cb730650b53d871c97..e4caad7f065ba553fa9affbfa72d89dbe16dc290 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientServiceAsync.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/IClientServiceAsync.java
@@ -50,7 +50,8 @@ public interface IClientServiceAsync
     /** @see IClientService#changeUserHomeGroup(TechId) */
     public void changeUserHomeGroup(TechId groupIdOrNull, AsyncCallback<Void> callback);
 
-    /** @see IClientService#logout(DisplaySettings) */
-    public void logout(DisplaySettings displaySettings, AsyncCallback<Void> callback);
+    /** @see IClientService#logout(DisplaySettings, boolean) */
+    public void logout(DisplaySettings displaySettings, boolean simpleViewMode,
+            AsyncCallback<Void> callback);
 
 }
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 12e377755c77539beba76e5e288b34277b5863d2..086cd9d10418faab5ea1fc8fbff85119073a26d5 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
@@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.LoginController;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.AttachmentDownloadLocatorResolver;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.BrowserLocatorResolver;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.HomeLocatorResolver;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.MaterialLocatorResolver;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.OpenViewAction;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.PermlinkLocatorResolver;
@@ -340,6 +341,7 @@ public class Client implements EntryPoint, ValueChangeHandler<String>
 
         handlerRegistry.registerHandler(new SearchLocatorResolver(context));
         handlerRegistry.registerHandler(new BrowserLocatorResolver(context));
+        handlerRegistry.registerHandler(new HomeLocatorResolver(context));
     }
 
     public void onValueChange(ValueChangeEvent<String> event)
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 d2796ba0727ec326f1a55af57bc9decb4c1519cf..38eacd0c890ae2baa1f5e97bbf392b18faae9311 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
@@ -145,6 +145,10 @@ public abstract class Dict
 
     public static final String BUTTON_EXPORT_TABLE = "button_exportTable";
 
+    public static final String BUTTON_LOGOUT_LABEL = "logout_buttonLabel";
+
+    public static final String BUTTON_HOME_LABEL = "home_buttonLabel";
+
     public static final String EXPORT_ALL_COLUMNS = "export_all_columns";
 
     public static final String EXPORT_VISIBLE_COLUMNS = "export_visible_columns";
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java
index 0b06c518ba06384d210fa24821e61652e999e08f..c5616d5a550392f2e984f6feeacb10a72fb7547a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/AppView.java
@@ -20,6 +20,7 @@ import com.extjs.gxt.ui.client.Style.LayoutRegion;
 import com.extjs.gxt.ui.client.mvc.AppEvent;
 import com.extjs.gxt.ui.client.mvc.Controller;
 import com.extjs.gxt.ui.client.mvc.View;
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
 import com.extjs.gxt.ui.client.widget.Viewport;
 import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
 import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
@@ -30,6 +31,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.CommonView
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenu;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.Footer;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.SimpleModeHeader;
 
 /**
  * Main application view.
@@ -44,7 +46,7 @@ final class AppView extends View
 
     private IMainPanel mainPanel;
 
-    private TopMenu north;
+    private LayoutContainer north;
 
     private ComponentProvider componentProvider;
 
@@ -68,10 +70,7 @@ final class AppView extends View
     {
         viewport = new Viewport();
         viewport.setLayout(new BorderLayout());
-        if (viewContext.isSimpleMode() == false)
-        {
-            createNorth();
-        }
+        createNorth();
         createCenter();
         createSouth();
         RootPanel.get().clear();
@@ -80,7 +79,13 @@ final class AppView extends View
 
     private final void createNorth()
     {
-        north = new TopMenu(viewContext, componentProvider);
+        if (viewContext.isSimpleMode())
+        {
+            north = new SimpleModeHeader(viewContext, componentProvider);
+        } else
+        {
+            north = new TopMenu(viewContext, componentProvider);
+        }
         final BorderLayoutData data = new BorderLayoutData(LayoutRegion.NORTH, 30);
         viewport.add(north, data);
     }
@@ -108,7 +113,6 @@ final class AppView extends View
     protected final void initialize()
     {
         componentProvider = new ComponentProvider(viewContext);
-        // categoriesBuilder = new CategoriesBuilder(componentProvider);
     }
 
     @Override
@@ -120,7 +124,7 @@ final class AppView extends View
         } else if (event.getType() == AppEvents.NAVI_EVENT)
         {
             activate(getData(event));
-        }
+        } 
     }
 
     private static IMainPanel createMainPanel(IViewContext<ICommonClientServiceAsync> viewContext)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainPagePanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainPagePanel.java
index e814a996be4d5c761668ee45b4270f4fe2ecc3c3..a1785fa2afa5b8f98bfe33b635f0e30e18a405f3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainPagePanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/MainPagePanel.java
@@ -35,7 +35,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUt
 public class MainPagePanel extends ContentPanel implements IMainPanel
 {
 
-    private static final String PREFIX = GenericConstants.ID_PREFIX + "main-page_";
+    public static final String PREFIX = GenericConstants.ID_PREFIX + "main-page_";
 
     private IClosableItem content;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/locator/HomeLocatorResolver.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/locator/HomeLocatorResolver.java
new file mode 100644
index 0000000000000000000000000000000000000000..e2e956463158ccaa855e826cad496c7335ec7da0
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/locator/HomeLocatorResolver.java
@@ -0,0 +1,73 @@
+package ch.systemsx.cisd.openbis.generic.client.web.client.application.locator;
+
+import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.MainPagePanel;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.WelcomePanelHelper;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier;
+import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
+
+/**
+ * {@link IViewLocatorResolver} that always goes to the home page.
+ * 
+ * @author Kaloyan Enimanev
+ */
+public class HomeLocatorResolver extends AbstractViewLocatorResolver
+{
+    public final static String HOME_ACTION = "HOME";
+
+    private final IViewContext<ICommonClientServiceAsync> viewContext;
+
+    public HomeLocatorResolver(IViewContext<ICommonClientServiceAsync> viewContext)
+    {
+        super(HOME_ACTION);
+        this.viewContext = viewContext;
+    }
+
+    public void resolve(final ViewLocator locator) throws UserFailureException
+    {
+        DispatcherHelper.dispatchNaviEvent(new AbstractTabItemFactory()
+            {
+
+                private final static String ID = GenericConstants.ID_PREFIX + HOME_ACTION;
+
+                @Override
+                public ITabItem create()
+                {
+                    return DefaultTabItem.createUnaware(getTabTitle(), WelcomePanelHelper
+                            .createWelcomePanel(viewContext, MainPagePanel.PREFIX), false);
+                }
+
+                @Override
+                public String getId()
+                {
+                    return ID;
+                }
+
+                @Override
+                public HelpPageIdentifier getHelpPageIdentifier()
+                {
+                    return null;
+                }
+
+                @Override
+                public String getTabTitle()
+                {
+                    return viewContext.getMessage(Dict.APPLICATION_NAME);
+                }
+
+                @Override
+                public String tryGetLink()
+                {
+                    return locator.getHistoryToken();
+                }
+
+            });
+    }
+}
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutAction.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutAction.java
index ab141af256b4efd5907dbc5786a3ce4d64f3f82d..1c159b5a2d2768166ad21bebce8815ae4958ec81 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutAction.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutAction.java
@@ -39,11 +39,11 @@ public class LogoutAction implements IDelegatedAction
 
     public void execute()
     {
-        // NOTE: We decided not to support logout in simple view mode.
-        assert viewContext.isSimpleMode() == false;
         History.newItem(""); // clears history token in URL
         DisplaySettings displaySettings =
                 viewContext.getModel().getSessionContext().getDisplaySettings();
-        viewContext.getService().logout(displaySettings, new LogoutCallback(viewContext));
+
+        viewContext.getService().logout(displaySettings, viewContext.isSimpleMode(),
+                new LogoutCallback(viewContext));
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SimpleModeHeader.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SimpleModeHeader.java
new file mode 100644
index 0000000000000000000000000000000000000000..72651f3e9fc9c47544050716f104ebdd5a3a23f2
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SimpleModeHeader.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2008 ETH Zuerich, CISD
+ *
+ * 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.generic.client.web.client.application.ui;
+
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.Component;
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
+import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
+import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
+import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.History;
+
+import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.SearchWidget;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ComponentProvider;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.locator.HomeLocatorResolver;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.user.action.LogoutAction;
+import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant;
+import ch.systemsx.cisd.openbis.generic.shared.basic.URLMethodWithParameters;
+
+/**
+ * Adds the header section in simple view mode.
+ * 
+ * @author Kaloyan Enimanev
+ */
+public class SimpleModeHeader extends LayoutContainer
+{
+    public static final String ID = GenericConstants.ID_PREFIX + "simple-mode-header";
+
+
+    private final ToolBar toolBar;
+
+    private final IViewContext<ICommonClientServiceAsync> viewContext;
+
+    public SimpleModeHeader(final IViewContext<ICommonClientServiceAsync> viewContext,
+            ComponentProvider componentProvider)
+    {
+        this.viewContext = viewContext;
+        setId(ID);
+        setLayout(new FlowLayout());
+        setBorders(true);
+        toolBar = new ToolBar();
+        add(toolBar);
+    }
+
+    final void refresh()
+    {
+        toolBar.removeAll();
+        toolBar.add(createHomeButton());
+        toolBar.add(new FillToolItem());
+        toolBar.add(new SearchWidget(viewContext));
+        toolBar.add(new SeparatorToolItem());
+        toolBar.add(createLogoutButton());
+    }
+
+    private Component createHomeButton()
+    {
+        String homeLabel = viewContext.getMessage(Dict.BUTTON_HOME_LABEL);
+        return new Button(homeLabel, new SelectionListener<ButtonEvent>()
+            {
+                @Override
+                public void componentSelected(ButtonEvent ce)
+                {
+                    URLMethodWithParameters url = new URLMethodWithParameters("");
+                    url.addParameter(BasicConstant.LOCATOR_ACTION_PARAMETER,
+                            HomeLocatorResolver.HOME_ACTION);
+                    String urlParameters = url.toString().substring(1);
+                    History.newItem(urlParameters);
+                }
+
+            });
+    }
+
+    private Button createLogoutButton()
+    {
+        String logoutLabel = viewContext.getMessage(Dict.BUTTON_LOGOUT_LABEL);
+        return new Button(logoutLabel, new SelectionListener<ButtonEvent>()
+            {
+                private LogoutAction logoutAction = new LogoutAction(viewContext);
+                @Override
+                public void componentSelected(ButtonEvent ce)
+                {
+                    logoutAction.execute();
+                }
+
+            });
+    }
+
+    @Override
+    protected void onRender(final Element parent, final int pos)
+    {
+        super.onRender(parent, pos);
+        refresh();
+    }
+
+}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java
index adc4f73dd73e0065c6a69bf543d15246f45fa146..6b5ae6312a7cdf400f0f7d054d9f3ec476f8b931 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java
@@ -581,7 +581,7 @@ public abstract class AbstractClientService implements IClientService,
         }
     }
 
-    public final void logout(DisplaySettings displaySettings)
+    public final void logout(DisplaySettings displaySettings, boolean simpleViewMode)
     {
         try
         {
@@ -595,7 +595,11 @@ public abstract class AbstractClientService implements IClientService,
                 httpSession.removeAttribute(SessionConstants.OPENBIS_EXPORT_MANAGER);
                 httpSession.invalidate();
                 IServer server = getServer();
-                server.saveDisplaySettings(sessionToken, displaySettings);
+                if (simpleViewMode == false)
+                {
+                    // only save settings for "normal" view
+                    server.saveDisplaySettings(sessionToken, displaySettings);
+                }
                 server.logout(sessionToken);
             }
         } catch (final UserFailureException e)
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 02b29758fd32eb7236afbf5a44311fd042000430..9b7b395298659a1bebf323cd4af46203223893fd 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
@@ -97,6 +97,8 @@ var common = {
   button_process: "Process",
   button_top: "Files",
   button_evaluate: "Evaluate",
+  logout_buttonLabel: "Logout",
+  home_buttonLabel: "Home",
   
   tooltip_refresh_disabled: "To activate select appropriate criteria first.",
   tooltip_refresh_enabled: "Load or update the table.",
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractGWTTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractGWTTestCase.java
index c697ac40f886fe24450d752f4f3ad4b1d11bafb7..1673a454fbbfa368e1f282d37ed5725614d24ef4 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractGWTTestCase.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/testframework/AbstractGWTTestCase.java
@@ -149,7 +149,7 @@ public abstract class AbstractGWTTestCase extends GWTTestCase
         final IViewContext<ICommonClientServiceAsync> viewContext = client.tryToGetViewContext();
         if (viewContext != null)
         {
-            viewContext.getService().logout(null, new AsyncCallback<Void>()
+            viewContext.getService().logout(null, false, new AsyncCallback<Void>()
                 {
                     public void onSuccess(final Void result)
                     {
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
index 928f789f24d0468c50a5eddc167c484bba6a5929..334bb9b3ab9de638e5f245768d974a3b8ce923d7 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
@@ -598,7 +598,7 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
                 }
             });
 
-        commonClientService.logout(displaySettings);
+        commonClientService.logout(displaySettings, false);
 
         context.assertIsSatisfied();
     }
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java
index b22fcd72872a238397f1658a63451ea0cfe37a7f..eb5baeeac15a2c53641c80ac0f95905f07319a0d 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/SystemTestCase.java
@@ -142,7 +142,7 @@ public abstract class SystemTestCase extends AbstractTransactionalTestNGSpringCo
 
     protected void logOutFromCommonClientService()
     {
-        commonClientService.logout(new DisplaySettings());
+        commonClientService.logout(new DisplaySettings(), false);
     }
 
     protected void sleep(long millis)