diff --git a/core/src/cz/nic/tablexia/menu/main/locale/LocaleSelectBox.java b/core/src/cz/nic/tablexia/menu/main/locale/LocaleSelectBox.java
index 9bfc0eccefb2e976b0d42fc04f7de43d09db3fff..ee906b0302e38f24dc668546fe301941deef1ead 100644
--- a/core/src/cz/nic/tablexia/menu/main/locale/LocaleSelectBox.java
+++ b/core/src/cz/nic/tablexia/menu/main/locale/LocaleSelectBox.java
@@ -71,6 +71,7 @@ public class LocaleSelectBox extends AbstractTablexiaSelectBox<LocaleSelectBox.L
     public LocaleSelectBox(float itemHeight) {
         super(itemHeight);
         ApplicationBus.getInstance().subscribe(this);
+        setCheckValidity(false);
         prepareLocales();
     }
 
@@ -81,10 +82,12 @@ public class LocaleSelectBox extends AbstractTablexiaSelectBox<LocaleSelectBox.L
         List<LocaleItem> localeItems = new ArrayList<LocaleItem>();
         for (TablexiaSettings.LocaleDefinition localeDefinition: TablexiaSettings.LocaleDefinition.getEnabledLocaleDefinitions()) {
             LocaleItem localeItem = new LocaleItem(localeDefinition);
-            localeItems.add(localeItem);
             if (localeDefinition.equals(TablexiaSettings.getInstance().getLocaleDefinition())) {
                 selectedLocaleItem = localeItem;
             }
+            else {
+                localeItems.add(localeItem);
+            }
         }
         setItems(localeItems.toArray(new LocaleItem[]{}));
         if (selectedLocaleItem != null) {
@@ -93,6 +96,13 @@ public class LocaleSelectBox extends AbstractTablexiaSelectBox<LocaleSelectBox.L
         addCaptureListener(changeListener);
     }
 
+    @Override
+    public boolean onSelectBoxItemSelected(LocaleItem item) {
+        getSelectBoxList().changeToSelected();
+        prepareLocales();
+        return true;
+    }
+
     @Override
     protected void drawSelectedItem(Batch batch, float parentAlpha, LocaleItem selected, float width, float height) {
         selected.setBounds(getX(), getY(), width, height);
diff --git a/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java b/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java
index 6ecc26932496c5d62ac602062eadfc0f77b78daa..193420267bd8d68534bbd6a5a093657fb36fb9fe 100644
--- a/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java
+++ b/core/src/cz/nic/tablexia/menu/main/user/UserSelectBox.java
@@ -69,6 +69,7 @@ public class UserSelectBox extends AbstractTablexiaSelectBox<UserSelectBox.UserS
             }
         };
 
+        setCheckValidity(false);
         prepareActiveUsers();
     }
 
@@ -78,12 +79,14 @@ public class UserSelectBox extends AbstractTablexiaSelectBox<UserSelectBox.UserS
         List<UserSelectBoxItem> userItems = new ArrayList<UserSelectBoxItem>();
         for (User user: UserDAO.selectActiveUsers()) {
             UserMenuSelectBoxItemGroup userItem = new UserMenuSelectBoxItemGroup(new UserMenuItem(user), getWidth());
-            userItems.add(userItem);
             if (user.equals(TablexiaSettings.getInstance().getSelectedUser())) {
                 selectedUserItem = userItem;
             }
+            else {
+                userItems.add(userItem);
+            }
         }
-        userItems.add(new UserMenuNewSelectBoxItemGroup() {
+        UserMenuNewSelectBoxItemGroup newUserItem = new UserMenuNewSelectBoxItemGroup() {
             @Override
             public void performAction() {
                 TablexiaSettings.getInstance().changeUser(null, new TablexiaSettings.LogoutAcceptListener() {
@@ -98,11 +101,16 @@ public class UserSelectBox extends AbstractTablexiaSelectBox<UserSelectBox.UserS
             public User getUser() {
                 return null;
             }
-        });
+        };
+        userItems.add(newUserItem);
+
         setItems(userItems.toArray(new UserSelectBoxItem[]{}));
         if (selectedUserItem != null) {
             setSelected(selectedUserItem);
         }
+        else {
+            setSelected(newUserItem);
+        }
         addCaptureListener(changeListener);
     }
 
diff --git a/core/src/cz/nic/tablexia/util/ui/AbstractTablexiaSelectBox.java b/core/src/cz/nic/tablexia/util/ui/AbstractTablexiaSelectBox.java
index ac0ca4ac1d47609d1f5cb098aeeabfd7196915a3..7cb258fb9627245b83c377da336af2d987eb46c2 100644
--- a/core/src/cz/nic/tablexia/util/ui/AbstractTablexiaSelectBox.java
+++ b/core/src/cz/nic/tablexia/util/ui/AbstractTablexiaSelectBox.java
@@ -42,6 +42,7 @@ public abstract class AbstractTablexiaSelectBox<T> extends Widget implements Dis
     private float prefWidth, prefHeight;
     private ClickListener clickListener;
     boolean disabled;
+    boolean checkValidity = true;
 
     public AbstractTablexiaSelectBox(float itemHeight) {
         setSize(getPrefWidth(), itemHeight);
@@ -167,12 +168,17 @@ public abstract class AbstractTablexiaSelectBox<T> extends Widget implements Dis
 
     /** Sets the selection to only the passed item, if it is a possible choice, else selects the first item. */
     public void setSelected (T item) {
-        if (items.contains(item, false))
+        if (!isCheckValidity()) {
             selection.set(item);
-        else if (items.size > 0)
-            selection.set(items.first());
-        else
-            selection.clear();
+        }
+        else {
+            if (items.contains(item, false))
+                selection.set(item);
+            else if (items.size > 0)
+                selection.set(items.first());
+            else
+                selection.clear();
+        }
     }
 
     /** @return The index of the first selected item. The top item has an index of 0. Nothing selected has an index of -1. */
@@ -191,6 +197,14 @@ public abstract class AbstractTablexiaSelectBox<T> extends Widget implements Dis
         this.disabled = disabled;
     }
 
+    public void setCheckValidity(boolean checkValidity) {
+        this.checkValidity = checkValidity;
+    }
+
+    public boolean isCheckValidity() {
+        return checkValidity;
+    }
+
     public boolean isDisabled () {
         return disabled;
     }