Index: uspace/app/calculator/calculator.c
===================================================================
--- uspace/app/calculator/calculator.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/app/calculator/calculator.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * Copyright (c) 2016 Martin Decky
  * All rights reserved.
@@ -896,5 +896,5 @@
 	}
 
-	rc = ui_menu_create(calc.menubar, "File", &mfile);
+	rc = ui_menu_create(calc.menubar, "~F~ile", &mfile);
 	if (rc != EOK) {
 		printf("Error creating menu.\n");
@@ -910,5 +910,5 @@
 	ui_menu_entry_set_cb(mexit, calc_file_exit, (void *) &calc);
 
-	rc = ui_menu_create(calc.menubar, "Edit", &medit);
+	rc = ui_menu_create(calc.menubar, "~E~dit", &medit);
 	if (rc != EOK) {
 		printf("Error creating menu.\n");
Index: uspace/app/edit/edit.c
===================================================================
--- uspace/app/edit/edit.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/app/edit/edit.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -430,5 +430,5 @@
 	}
 
-	rc = ui_menu_create(edit->menubar, "File", &mfile);
+	rc = ui_menu_create(edit->menubar, "~F~ile", &mfile);
 	if (rc != EOK) {
 		printf("Error creating menu.\n");
@@ -466,5 +466,5 @@
 	ui_menu_entry_set_cb(mexit, edit_file_exit, (void *) edit);
 
-	rc = ui_menu_create(edit->menubar, "Edit", &medit);
+	rc = ui_menu_create(edit->menubar, "~E~dit", &medit);
 	if (rc != EOK) {
 		printf("Error creating menu.\n");
@@ -518,5 +518,5 @@
 	ui_menu_entry_set_cb(mselall, edit_edit_select_all, (void *) edit);
 
-	rc = ui_menu_create(edit->menubar, "Search", &msearch);
+	rc = ui_menu_create(edit->menubar, "~S~earch", &msearch);
 	if (rc != EOK) {
 		printf("Error creating menu.\n");
Index: uspace/app/nav/menu.c
===================================================================
--- uspace/app/nav/menu.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/app/nav/menu.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -72,5 +72,5 @@
 		goto error;
 
-	rc = ui_menu_create(menu->menubar, "File", &mfile);
+	rc = ui_menu_create(menu->menubar, "~F~ile", &mfile);
 	if (rc != EOK)
 		goto error;
Index: uspace/lib/ui/include/ui/accel.h
===================================================================
--- uspace/lib/ui/include/ui/accel.h	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
+++ uspace/lib/ui/include/ui/accel.h	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2022 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libui
+ * @{
+ */
+/**
+ * @file Accelerator processing
+ */
+
+#ifndef _UI_ACCEL_H
+#define _UI_ACCEL_H
+
+#include <errno.h>
+#include <uchar.h>
+
+extern errno_t ui_accel_process(const char *, char **, char **);
+extern char32_t ui_accel_get(const char *);
+
+#endif
+
+/** @}
+ */
Index: uspace/lib/ui/include/ui/menu.h
===================================================================
--- uspace/lib/ui/include/ui/menu.h	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/lib/ui/include/ui/menu.h	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -45,4 +45,5 @@
 #include <types/ui/menubar.h>
 #include <types/ui/event.h>
+#include <uchar.h>
 
 extern errno_t ui_menu_create(ui_menu_bar_t *, const char *, ui_menu_t **);
@@ -54,4 +55,5 @@
 extern const char *ui_menu_caption(ui_menu_t *);
 extern void ui_menu_get_rect(ui_menu_t *, gfx_coord2_t *, gfx_rect_t *);
+extern char32_t ui_menu_get_accel(ui_menu_t *);
 extern errno_t ui_menu_open(ui_menu_t *, gfx_rect_t *);
 extern void ui_menu_close(ui_menu_t *);
Index: uspace/lib/ui/meson.build
===================================================================
--- uspace/lib/ui/meson.build	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/lib/ui/meson.build	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -29,4 +29,5 @@
 deps = [ 'gfx', 'gfxfont', 'memgfx', 'display', 'congfx' ]
 src = files(
+	'src/accel.c',
 	'src/checkbox.c',
 	'src/control.c',
@@ -54,4 +55,5 @@
 
 test_src = files(
+	'test/accel.c',
 	'test/checkbox.c',
 	'test/control.c',
Index: uspace/lib/ui/src/accel.c
===================================================================
--- uspace/lib/ui/src/accel.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
+++ uspace/lib/ui/src/accel.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2022 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libui
+ * @{
+ */
+/**
+ * @file Accelerator processing
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <str.h>
+#include <ui/accel.h>
+
+/** Process text with accelerator markup.
+ *
+ * Parse text with tilde markup into a list of strings. @a *rbuf is set
+ * to point to a newly allocated buffer containing consecutive null-terminated
+ * strings.
+ *
+ * Each part between two '~' becomes one string. '~~' is translated into
+ * a literal '~' character. @a *endptr is set to point to the first character
+ * beyond the end of the list.
+ *
+ * @param str String with tilde markup
+ * @param rbuf Place to store pointer to newly allocated buffer.
+ * @param endptr Place to store end pointer (just after last character)
+ * @return EOK on success or an error code
+ */
+errno_t ui_accel_process(const char *str, char **rbuf, char **endptr)
+{
+	const char *sp;
+	char *dp;
+	char *buf;
+
+	buf = malloc(str_size(str) + 1);
+	if (buf == NULL)
+		return ENOMEM;
+
+	/* Break down string into list of (non)highlighted parts */
+	sp = str;
+	dp = buf;
+	while (*sp != '\0') {
+		if (*sp == '~') {
+			if (sp[1] == '~') {
+				sp += 2;
+				*dp++ = '~';
+			} else {
+				++sp;
+				*dp++ = '\0';
+			}
+		} else {
+			*dp++ = *sp++;
+		}
+	}
+
+	*dp++ = '\0';
+	*rbuf = buf;
+	*endptr = dp;
+
+	return EOK;
+}
+
+/** Get accelerator character from marked-up string.
+ *
+ * @param str String with '~' accelerator markup
+ *
+ * @return Accelerator character (lowercase) or the null character if
+ *         the menu has no accelerator.
+ */
+char32_t ui_accel_get(const char *str)
+{
+	const char *sp = str;
+	size_t off;
+
+	while (*sp != '\0') {
+		if (*sp == '~') {
+			if (sp[1] == '~') {
+				++sp;
+			} else {
+				/* Found the accelerator */
+				++sp;
+				break;
+			}
+		}
+
+		++sp;
+	}
+
+	if (*sp == '\0') {
+		/* No accelerator */
+		return '\0';
+	}
+
+	/* Decode accelerator character */
+	off = 0;
+
+	/*
+	 * NOTE: tolower is unlike to actually convert to lowercase
+	 * in case of non-ASCII characters
+	 */
+	return tolower(str_decode(sp, &off, STR_NO_LIMIT));
+}
+
+/** @}
+ */
Index: uspace/lib/ui/src/menu.c
===================================================================
--- uspace/lib/ui/src/menu.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/lib/ui/src/menu.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -43,4 +43,6 @@
 #include <stdlib.h>
 #include <str.h>
+#include <uchar.h>
+#include <ui/accel.h>
 #include <ui/control.h>
 #include <ui/paint.h>
@@ -251,4 +253,15 @@
 	ui_menu_get_geom(menu, spos, &geom);
 	*rect = geom.outer_rect;
+}
+
+/** Get menu accelerator character.
+ *
+ * @param menu Menu
+ * @return Accelerator character (lowercase) or the null character if
+ *         the menu has no accelerator.
+ */
+char32_t ui_menu_get_accel(ui_menu_t *menu)
+{
+	return ui_accel_get(menu->caption);
 }
 
Index: uspace/lib/ui/src/menubar.c
===================================================================
--- uspace/lib/ui/src/menubar.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/lib/ui/src/menubar.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -252,8 +252,5 @@
 	old_menu = mbar->selected;
 
-	if (mbar->selected != menu)
-		mbar->selected = menu;
-	else
-		mbar->selected = NULL;
+	mbar->selected = menu;
 
 	/* Close previously open menu */
@@ -333,4 +330,6 @@
 {
 	gfx_rect_t rect;
+	ui_menu_t *menu;
+	char32_t maccel;
 
 	if (event->key == KC_F10) {
@@ -361,4 +360,19 @@
 
 		return ui_claimed;
+	}
+
+	if (event->c != '\0' && !ui_menu_is_open(mbar->selected)) {
+		/* Check if it is an accelerator. */
+
+		menu = ui_menu_first(mbar);
+		while (menu != NULL) {
+			maccel = ui_menu_get_accel(menu);
+			if (event->c == maccel) {
+				ui_menu_bar_select(mbar, menu, true);
+				return ui_claimed;
+			}
+
+			menu = ui_menu_next(menu);
+		}
 	}
 
@@ -428,5 +442,11 @@
 		    gfx_pix_inside_rect(&ppos, &rect)) {
 			mbar->active = true;
-			ui_menu_bar_select(mbar, menu, true);
+
+			/* Open the menu, close if already open. */
+			if (menu == mbar->selected)
+				ui_menu_bar_select(mbar, NULL, false);
+			else
+				ui_menu_bar_select(mbar, menu, true);
+
 			return ui_claimed;
 		}
Index: uspace/lib/ui/src/paint.c
===================================================================
--- uspace/lib/ui/src/paint.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/lib/ui/src/paint.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -39,4 +39,5 @@
 #include <gfx/render.h>
 #include <gfx/text.h>
+#include <ui/accel.h>
 #include <ui/paint.h>
 #include <stdlib.h>
@@ -566,53 +567,4 @@
 }
 
-/** Process text with '~' markup.
- *
- * Parse text with tilde markup into a list of strings. @a *rbuf is set
- * to point to a newly allocated buffer containing consecutive null-terminated
- * strings.
- *
- * Each part between two '~' becomes one string. '~~' is translated into
- * a literal '~' character. @a *endptr is set to point to the first character
- * beyond the end of the list.
- *
- * @param str String with tilde markup
- * @param rbuf Place to store pointer to newly allocated buffer.
- * @param endptr Place to store end pointer (just after last character)
- * @return EOK on success or an error code
- */
-static int ui_text_process(const char *str, char **rbuf, char **endptr)
-{
-	const char *sp;
-	char *dp;
-	char *buf;
-
-	buf = malloc(str_size(str) + 1);
-	if (buf == NULL)
-		return ENOMEM;
-
-	/* Break down string into list of (non)highlighted parts */
-	sp = str;
-	dp = buf;
-	while (*sp != '\0') {
-		if (*sp == '~') {
-			if (sp[1] == '~') {
-				sp += 2;
-				*dp++ = '~';
-			} else {
-				++sp;
-				*dp++ = '\0';
-			}
-		} else {
-			*dp++ = *sp++;
-		}
-	}
-
-	*dp++ = '\0';
-	*rbuf = buf;
-	*endptr = dp;
-
-	return EOK;
-}
-
 /** Compute UI text width.
  *
@@ -664,5 +616,5 @@
 
 	/* Break down string into list of (non)highlighted parts */
-	rc = ui_text_process(str, &buf, &endptr);
+	rc = ui_accel_process(str, &buf, &endptr);
 	if (rc != EOK)
 		return rc;
Index: uspace/lib/ui/test/accel.c
===================================================================
--- uspace/lib/ui/test/accel.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
+++ uspace/lib/ui/test/accel.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2022 Jiri Svoboda
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTvvhhzccgggrERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <pcut/pcut.h>
+#include <stdlib.h>
+#include <str.h>
+#include <uchar.h>
+#include <ui/accel.h>
+
+PCUT_INIT;
+
+PCUT_TEST_SUITE(accel);
+
+/** ui_accel_process() */
+PCUT_TEST(process)
+{
+	errno_t rc;
+	char *buf;
+	char *endptr;
+	char *bp1;
+	char *bp2;
+
+	/* Cases where one string is produced */
+
+	rc = ui_accel_process("", &buf, &endptr);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+	PCUT_ASSERT_STR_EQUALS("", buf);
+	PCUT_ASSERT_EQUALS(buf + 1, endptr);
+	free(buf);
+
+	rc = ui_accel_process("Hello", &buf, &endptr);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+	PCUT_ASSERT_STR_EQUALS("Hello", buf);
+	PCUT_ASSERT_EQUALS(buf + str_size("Hello") + 1, endptr);
+	free(buf);
+
+	rc = ui_accel_process("~~Hello~~", &buf, &endptr);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+	PCUT_ASSERT_STR_EQUALS("~Hello~", buf);
+	PCUT_ASSERT_EQUALS(buf + str_size("~Hello~") + 1, endptr);
+	free(buf);
+
+	/* Three strings are produced (the first is empty) */
+
+	rc = ui_accel_process("~H~ello", &buf, &endptr);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+	PCUT_ASSERT_STR_EQUALS("", buf);
+
+	bp1 = buf + str_size(buf) + 1;
+	PCUT_ASSERT_STR_EQUALS("H", bp1);
+
+	bp2 = bp1 + str_size(bp1) + 1;
+	PCUT_ASSERT_STR_EQUALS("ello", bp2);
+
+	PCUT_ASSERT_EQUALS(bp2 + str_size("ello") + 1, endptr);
+	free(buf);
+}
+
+/** ui_accel_get() */
+PCUT_TEST(get)
+{
+	char32_t a;
+
+	a = ui_accel_get("");
+	PCUT_ASSERT_EQUALS('\0', a);
+
+	a = ui_accel_get("Hello");
+	PCUT_ASSERT_EQUALS('\0', a);
+
+	a = ui_accel_get("~~");
+	PCUT_ASSERT_EQUALS('\0', a);
+
+	a = ui_accel_get("~~Hello~~");
+	PCUT_ASSERT_EQUALS('\0', a);
+
+	a = ui_accel_get("~H~ello");
+	PCUT_ASSERT_EQUALS('h', a);
+
+	a = ui_accel_get("H~e~llo");
+	PCUT_ASSERT_EQUALS('e', a);
+}
+
+PCUT_EXPORT(accel);
Index: uspace/lib/ui/test/main.c
===================================================================
--- uspace/lib/ui/test/main.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/lib/ui/test/main.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2021 Jiri Svoboda
+ * Copyright (c) 2022 Jiri Svoboda
  * All rights reserved.
  *
@@ -31,4 +31,5 @@
 PCUT_INIT;
 
+PCUT_IMPORT(accel);
 PCUT_IMPORT(control);
 PCUT_IMPORT(checkbox);
Index: uspace/lib/ui/test/menubar.c
===================================================================
--- uspace/lib/ui/test/menubar.c	(revision ca2680d04b96dc8439f39dce7618923428b11279)
+++ uspace/lib/ui/test/menubar.c	(revision 96c6a005543f33cc3c981d5509c272f7fc2978cf)
@@ -187,5 +187,6 @@
 
 	event.type = KEY_PRESS;
-	event.key = KC_ESCAPE;
+	event.key = KC_F10;
+	event.mods = 0;
 	claimed = ui_menu_bar_kbd_event(mbar, &event);
 	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
@@ -249,44 +250,4 @@
 }
 
-/** Calling ui_menu_bar_select() with the same menu twice deselects it */
-PCUT_TEST(select_same)
-{
-	ui_t *ui = NULL;
-	ui_window_t *window = NULL;
-	ui_wnd_params_t params;
-	ui_menu_bar_t *mbar = NULL;
-	ui_menu_t *menu = NULL;
-	errno_t rc;
-
-	rc = ui_create_disp(NULL, &ui);
-	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
-
-	ui_wnd_params_init(&params);
-	params.caption = "Hello";
-
-	rc = ui_window_create(ui, &params, &window);
-	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
-	PCUT_ASSERT_NOT_NULL(window);
-
-	rc = ui_menu_bar_create(ui, window, &mbar);
-	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
-	PCUT_ASSERT_NOT_NULL(mbar);
-
-	rc = ui_menu_create(mbar, "Test", &menu);
-	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
-	PCUT_ASSERT_NOT_NULL(menu);
-
-	ui_menu_bar_select(mbar, menu, true);
-	PCUT_ASSERT_EQUALS(menu, mbar->selected);
-
-	/* Selecting again should unselect the menu */
-	ui_menu_bar_select(mbar, menu, true);
-	PCUT_ASSERT_NULL(mbar->selected);
-
-	ui_menu_bar_destroy(mbar);
-	ui_window_destroy(window);
-	ui_destroy(ui);
-}
-
 /** Calling ui_menu_bar_select() with another menu selects it */
 PCUT_TEST(select_different)
