Index: uspace/lib/libc/generic/task.c
===================================================================
--- uspace/lib/libc/generic/task.c	(revision 34a74ab48411f1258fe12a5bce99c172084075ea)
+++ uspace/lib/libc/generic/task.c	(revision 4bf40f637e087cec01fa625a48d7080bccb464cf)
@@ -42,4 +42,5 @@
 #include <async.h>
 #include <errno.h>
+#include <vfs/vfs.h>
 
 task_id_t task_get_id(void)
@@ -131,7 +132,15 @@
 	ipcarg_t retval;
 
+	char *pa;
+	size_t pa_len;
+
+	pa = absolutize(path, &pa_len);
+	if (!pa)
+		return 0;
+
 	/* Spawn a program loader */	
 	phone_id = task_spawn_loader();
-	if (phone_id < 0) return 0;
+	if (phone_id < 0)
+		return 0;
 
 	/*
@@ -140,9 +149,10 @@
 	 */
 	rc = async_req_0_0(phone_id, LOADER_HELLO);
-	if (rc != EOK) return 0;
+	if (rc != EOK)
+		return 0;
 
 	/* Send program pathname */
 	req = async_send_0(phone_id, LOADER_SET_PATHNAME, &answer);
-	rc = ipc_data_write_start(phone_id, (void *)path, strlen(path));
+	rc = ipc_data_write_start(phone_id, (void *)pa, pa_len);
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -151,13 +161,16 @@
 
 	async_wait_for(req, &retval);
-	if (retval != EOK) goto error;
+	if (retval != EOK)
+		goto error;
 
 	/* Send arguments */
 	rc = loader_set_args(phone_id, argv);
-	if (rc != EOK) goto error;
+	if (rc != EOK)
+		goto error;
 
 	/* Request loader to start the program */	
 	rc = async_req_0_0(phone_id, LOADER_RUN);
-	if (rc != EOK) goto error;
+	if (rc != EOK)
+		goto error;
 
 	/* Success */
Index: uspace/lib/libc/generic/vfs/vfs.c
===================================================================
--- uspace/lib/libc/generic/vfs/vfs.c	(revision 34a74ab48411f1258fe12a5bce99c172084075ea)
+++ uspace/lib/libc/generic/vfs/vfs.c	(revision 4bf40f637e087cec01fa625a48d7080bccb464cf)
@@ -60,5 +60,5 @@
 size_t cwd_len = 0; 
 
-static char *absolutize(const char *path, size_t *retlen)
+char *absolutize(const char *path, size_t *retlen)
 {
 	char *ncwd_path;
Index: uspace/lib/libc/include/vfs/vfs.h
===================================================================
--- uspace/lib/libc/include/vfs/vfs.h	(revision 34a74ab48411f1258fe12a5bce99c172084075ea)
+++ uspace/lib/libc/include/vfs/vfs.h	(revision 4bf40f637e087cec01fa625a48d7080bccb464cf)
@@ -36,4 +36,8 @@
 #define LIBC_VFS_H_
 
+#include <sys/types.h>
+
+extern char *absolutize(const char *, size_t *);
+
 extern int mount(const char *, const char *, const char *);
 
