Index: uspace/lib/tbarcfg/src/tbarcfg.c
===================================================================
--- uspace/lib/tbarcfg/src/tbarcfg.c	(revision f87ff8e62c7a8a010413c60997320386cd62f9a8)
+++ uspace/lib/tbarcfg/src/tbarcfg.c	(revision 71307541fd5ee1f557ff938fd3f52195abde393b)
@@ -154,5 +154,5 @@
 		}
 
-		rc = smenu_entry_new(tbcfg, nentry, caption, cmd);
+		rc = smenu_entry_new(tbcfg, nentry, caption, cmd, NULL);
 		if (rc != EOK)
 			goto error;
@@ -325,7 +325,8 @@
  * @param caption Caption
  * @param cmd Command to run
+ * @param rentry Place to store pointer to new entry or @c NULL
  */
 errno_t smenu_entry_new(tbarcfg_t *smenu, sif_node_t *nentry,
-    const char *caption, const char *cmd)
+    const char *caption, const char *cmd, smenu_entry_t **rentry)
 {
 	smenu_entry_t *entry;
@@ -354,4 +355,6 @@
 	entry->smenu = smenu;
 	list_append(&entry->lentries, &smenu->entries);
+	if (rentry != NULL)
+		*rentry = entry;
 	return EOK;
 error:
@@ -388,9 +391,11 @@
  * @param caption Caption
  * @param cmd Command to run
+ * @param rentry Place to store pointer to new entry or @c NULL
  */
 errno_t smenu_entry_create(tbarcfg_t *smenu, const char *caption,
-    const char *cmd)
+    const char *cmd, smenu_entry_t **rentry)
 {
 	sif_node_t *nentry;
+	smenu_entry_t *entry;
 	errno_t rc;
 	sif_trans_t *trans = NULL;
@@ -413,5 +418,5 @@
 		goto error;
 
-	rc = smenu_entry_new(smenu, nentry, caption, cmd);
+	rc = smenu_entry_new(smenu, nentry, caption, cmd, &entry);
 	if (rc != EOK)
 		goto error;
@@ -421,4 +426,6 @@
 		goto error;
 
+	if (rentry != NULL)
+		*rentry = entry;
 	return EOK;
 error:
