Index: uspace/app/bdsh/cmds/modules/unalias/unalias.c
===================================================================
--- uspace/app/bdsh/cmds/modules/unalias/unalias.c	(revision aa3ca1e7a0ca1848bb0d11f96529f15bfd7c39be)
+++ uspace/app/bdsh/cmds/modules/unalias/unalias.c	(revision 0d0f1a89993d988c451b6f2d8a417d6777b4632a)
@@ -58,9 +58,10 @@
 	} else {
 		help_cmd_unalias(HELP_SHORT);
-		printf("Usage: `%s' [-a] name [name ...]'\n\n"
+		printf("Usage: `%s' -a'\n"
+		    "`%s' name [name ...]'\n\n"
 		    "If no parameters are given it will display this help message.\n"
 		    "If the flag -a is given, all existing aliases will be removed.\n"
 		    "If one or multiple parameters are given, then those aliases will be removed.\n",
-		    cmdname);
+		    cmdname, cmdname);
 	}
 }
@@ -75,9 +76,9 @@
 	}
 
-	size_t i;
 	odlink_t *alias_link;
 
-	for (i = 1; argv[i] != NULL; i++) {
-		if (str_cmp(argv[i], "-a") == 0) {
+	unsigned int argc = cli_count_args(argv);
+	if (argc == 2) {
+		if (str_cmp(argv[1], "-a") == 0) {
 			alias_link = odict_first(&alias_dict);
 			while (alias_link != NULL) {
@@ -89,13 +90,15 @@
 			return CMD_SUCCESS;
 		}
+	}
 
+	size_t i;
+	for (i = 1; argv[i] != NULL; i++) {
 		alias_link = odict_find_eq(&alias_dict, (void *)argv[i], NULL);
 
 		if (alias_link == NULL) {
 			cli_error(CL_ENOENT, "%s: No alias '%s' found\n", cmdname, argv[i]);
-			return CMD_FAILURE;
+		} else {
+			free_alias(alias_link);
 		}
-
-		free_alias(alias_link);
 	}
 
