Index: uspace/app/bdsh/cmds/modules/alias/alias.c
===================================================================
--- uspace/app/bdsh/cmds/modules/alias/alias.c	(revision 55e35a220f8b0ecf9d2048bc85af53f7b40e6689)
+++ uspace/app/bdsh/cmds/modules/alias/alias.c	(revision 229d114ea73859a37f43cb615d3a5a32b90e139f)
@@ -38,5 +38,5 @@
 
 
-static int print_alias(const char* name)
+static bool print_alias(const char* name)
 {
 	odlink_t *alias_link = odict_find_eq(&alias_dict, (void*)name, NULL);
@@ -44,5 +44,5 @@
 		alias_t* data = odict_get_instance(alias_link, alias_t, odict);
 		printf(alias_format, data->name, data->value);
-		return CMD_SUCCESS;
+		return true;
 	}
 
@@ -50,5 +50,5 @@
 
 	printf("%s: No alias with the name '%s' exists\n", cmdname, name);
-	return CMD_FAILURE;
+	return false;
 }
 
@@ -98,29 +98,20 @@
 		list_aliases();
 		return CMD_SUCCESS;
-	}else if (argv[2] == NULL && str_chr(argv[1], '=') == NULL) {
-		return print_alias(argv[1]);
 	}
-	
-	//concat all it together
-	char* str = (char*)malloc(INPUT_MAX * sizeof(char));
-	str[0] = '\0';
+
 
 	size_t i;
 	for (i = 1; argv[i] != NULL; i++) {
-		str_append(str, INPUT_MAX - 1, argv[i]);
+		char* pos;
+		if ((pos = str_chr(argv[i], '=')) != NULL) {
+			argv[i][pos - argv[i]] = '\0';
+			set_alias(argv[i], pos + 1);
+		}else {
+			if(!print_alias(argv[i])) {
+				return CMD_FAILURE;
+			}
+		}
 	}
-
-	//split input
-	char* pos = str_chr(str, '=');
-	if(pos == NULL) {
-		printf("%s: bad formatted input\n", cmdname);
-		return CMD_FAILURE;
-	}
-
-
-	str[pos - str] = '\0';
-	set_alias(str, pos + 1);
-
-	free(str);
+	
 	return CMD_SUCCESS;
 }
