Index: uspace/lib/c/include/async.h
===================================================================
--- uspace/lib/c/include/async.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/async.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -276,5 +276,4 @@
 extern sysarg_t async_get_label(void);
 
-extern async_sess_t *async_session_primary_swap(async_sess_t *);
 extern async_sess_t *async_connect_me_to(async_exch_t *, iface_t, sysarg_t,
     sysarg_t);
Index: uspace/lib/c/include/ipc/common.h
===================================================================
--- uspace/lib/c/include/ipc/common.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/ipc/common.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -39,4 +39,7 @@
 #include <abi/ipc/ipc.h>
 
+/* Well known phone descriptors */
+#define PHONE_INITIAL  0
+
 #define IPC_FLAG_BLOCKING   0x01
 // TODO autostart flag may be united with blocking, this should be later made
Index: uspace/lib/c/include/ipc/services.h
===================================================================
--- uspace/lib/c/include/ipc/services.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/ipc/services.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -46,5 +46,4 @@
 	SERVICE_LOC        = FOURCC('l', 'o', 'c', ' '),
 	SERVICE_SYSMAN     = FOURCC('s', 'y', 's', 'm'),
-	SERVICE_TASKMAN    = FOURCC('t', 's', 'k', 'm'),
 	SERVICE_LOGGER     = FOURCC('l', 'o', 'g', 'g'),
 	SERVICE_DEVMAN     = FOURCC('d', 'e', 'v', 'n'),
Index: uspace/lib/c/include/ipc/taskman.h
===================================================================
--- uspace/lib/c/include/ipc/taskman.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/ipc/taskman.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -42,5 +42,7 @@
 	TASKMAN_WAIT = IPC_FIRST_USER_METHOD,
 	TASKMAN_RETVAL,
-	TASKMAN_EVENT_CALLBACK
+	TASKMAN_EVENT_CALLBACK,
+	TASKMAN_NEW_TASK,
+	TASKMAN_I_AM_NS
 } taskman_request_t;
 
@@ -50,9 +52,8 @@
 
 typedef enum {
-	TASKMAN_CONNECT_TO_LOADER = 0,
-	TASKMAN_LOADER_TO_NS,
-	TASKMAN_LOADER_CALLBACK,
-	TASKMAN_CONTROL
-} taskman_interface_t;
+	TASKMAN_CONNECT_TO_NS = 0,
+	TASKMAN_CONNECT_TO_LOADER,
+	TASKMAN_LOADER_CALLBACK
+} taskman_connect_t;
 
 #endif
Index: uspace/lib/c/include/loader/pcb.h
===================================================================
--- uspace/lib/c/include/loader/pcb.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/loader/pcb.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -61,7 +61,4 @@
 	entry_point_t entry;
 
-	/** Primary session to broker. */
-	async_sess_t *session_primary;
-	
 	/** Session to taskman (typically spawn parent) */
 	async_sess_t *session_taskman;
Index: uspace/lib/c/include/ns.h
===================================================================
--- uspace/lib/c/include/ns.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/ns.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -49,4 +49,6 @@
 extern async_sess_t *ns_session_get(void);
 
+extern async_sess_t *ns_get_session(void);
+
 #endif
 
Index: uspace/lib/c/include/task.h
===================================================================
--- uspace/lib/c/include/task.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/task.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -76,5 +76,5 @@
 extern errno_t task_retval(int);
 
-/* Implemented in task_event.h */
+/* Implemented in task_event.c */
 extern int task_register_event_handler(task_event_handler_t);
 
Index: uspace/lib/c/include/taskman.h
===================================================================
--- uspace/lib/c/include/taskman.h	(revision 456f7aec147ab77d57de3a2997e634873236b280)
+++ uspace/lib/c/include/taskman.h	(revision 2df7d82445fd27fa3d7738624e0591a3d59ae237)
@@ -36,7 +36,16 @@
 #define LIBC_TASKMAN_H_
 
+#ifndef TASKMAN_DISABLE_ASYNC
 #include <async.h>
+#endif
 
-extern async_sess_t *taskman_handshake(void);
+/* Internal functions to be used by loader only */
+#ifndef TASKMAN_DISABLE_ASYNC
+extern async_sess_t *taskman_get_session(void);
+#endif
+extern int taskman_intro_loader(void);
+
+/* Internal functions to be used by NS only */
+extern int taskman_intro_ns(void);
 
 #endif
