Index: abi/include/abi/sysinfo.h
===================================================================
--- abi/include/abi/sysinfo.h	(revision 63a045c41ff533abb66be65fc068415be77ad7df)
+++ abi/include/abi/sysinfo.h	(revision 92864752b1dfddb2a35e0b2216820f6ed1dbeb0d)
@@ -46,5 +46,5 @@
 
 /** Maximum name sizes */
-#define TASK_NAME_BUFLEN  20
+#define TASK_NAME_BUFLEN  64
 #define EXC_NAME_BUFLEN   20
 
Index: uspace/app/taskdump/taskdump.c
===================================================================
--- uspace/app/taskdump/taskdump.c	(revision 63a045c41ff533abb66be65fc068415be77ad7df)
+++ uspace/app/taskdump/taskdump.c	(revision 92864752b1dfddb2a35e0b2216820f6ed1dbeb0d)
@@ -405,54 +405,20 @@
 static void autoload_syms(void)
 {
-	char *file_name;
-	errno_t rc;
-	int ret;
-
 	assert(app_name != NULL);
 	assert(app_symtab == NULL);
 
-	ret = asprintf(&file_name, "/app/%s", app_name);
-	if (ret < 0) {
-		printf("Memory allocation failure.\n");
-		exit(1);
-	}
-
-	rc = symtab_load(file_name, &app_symtab);
-	if (rc == EOK) {
-		printf("Loaded symbol table from %s\n", file_name);
-		free(file_name);
+	if (app_name[0] != '/') {
+		printf("Task name is not path. Can't autoload symbol table.\n");
 		return;
 	}
 
-	free(file_name);
-
-	ret = asprintf(&file_name, "/srv/%s", app_name);
-	if (ret < 0) {
-		printf("Memory allocation failure.\n");
-		exit(1);
-	}
-
-	rc = symtab_load(file_name, &app_symtab);
-	if (rc == EOK) {
-		printf("Loaded symbol table from %s\n", file_name);
-		free(file_name);
+	errno_t rc = symtab_load(app_name, &app_symtab);
+	if (rc != EOK) {
+		printf("Failed autoloading symbol table: %s\n",
+		    str_error_name(rc));
 		return;
 	}
 
-	ret = asprintf(&file_name, "/drv/%s/%s", app_name, app_name);
-	if (ret < 0) {
-		printf("Memory allocation failure.\n");
-		exit(1);
-	}
-
-	rc = symtab_load(file_name, &app_symtab);
-	if (rc == EOK) {
-		printf("Loaded symbol table from %s\n", file_name);
-		free(file_name);
-		return;
-	}
-
-	free(file_name);
-	printf("Failed autoloading symbol table.\n");
+	printf("Loaded symbol table from %s\n", app_name);
 }
 
Index: uspace/lib/c/generic/loader.c
===================================================================
--- uspace/lib/c/generic/loader.c	(revision 63a045c41ff533abb66be65fc068415be77ad7df)
+++ uspace/lib/c/generic/loader.c	(revision 92864752b1dfddb2a35e0b2216820f6ed1dbeb0d)
@@ -189,10 +189,8 @@
 errno_t loader_set_program_path(loader_t *ldr, const char *path)
 {
-	const char *name = str_rchr(path, '/');
-	if (name == NULL) {
-		name = path;
-	} else {
-		name++;
-	}
+	size_t abslen;
+	char *abspath = vfs_absolutize(path, &abslen);
+	if (!abspath)
+		return ENOMEM;
 
 	int fd;
@@ -202,5 +200,5 @@
 	}
 
-	rc = loader_set_program(ldr, name, fd);
+	rc = loader_set_program(ldr, path, fd);
 	vfs_put(fd);
 	return rc;
