Index: uspace/lib/c/generic/loc.c
===================================================================
--- uspace/lib/c/generic/loc.c	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/lib/c/generic/loc.c	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -329,5 +329,5 @@
 	async_exch_t *exch;
 
-	if ((flags & IPC_FLAG_BLOCKING) || flags & IPC_FLAG_AUTOSTART)
+	if ((flags & IPC_FLAG_BLOCKING))
 		exch = loc_exchange_begin_blocking(INTERFACE_LOC_CONSUMER);
 	else {
Index: uspace/lib/c/include/ipc/common.h
===================================================================
--- uspace/lib/c/include/ipc/common.h	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/lib/c/include/ipc/common.h	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -43,7 +43,15 @@
 
 #define IPC_FLAG_BLOCKING   0x01
-// TODO autostart flag may be united with blocking, this should be later made
-//      implicit, documented or refactor pairs of xxx and xxx_blocking methods
-#define IPC_FLAG_AUTOSTART  0x02
+
+/**
+ * IPC_FLAG_AUTOSTART_ is for use in brokers only. In clinet code use
+ * IPC_AUTOSTART that includes implies blocking behavior. */
+#define IPC_FLAG_AUTOSTART_  0x02
+
+/**
+ * Similar to blocking IPC_FLAG_BLOCKING behavior, broker will attempt to
+ * start the server.
+ */
+#define IPC_AUTOSTART (IPC_FLAG_BLOCKING | IPC_FLAG_AUTOSTART_)
 
 typedef ipc_data_t ipc_call_t;
Index: uspace/lib/gui/window.c
===================================================================
--- uspace/lib/gui/window.c	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/lib/gui/window.c	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -615,6 +615,6 @@
 	win->focus = NULL;
 	win->surface = NULL;
-
-	unsigned int ipc_flags = IPC_FLAG_AUTOSTART;
+	
+	unsigned int ipc_flags = IPC_AUTOSTART;
 	service_id_t reg_dsid;
 	errno_t rc = loc_service_get_id(winreg, &reg_dsid, ipc_flags);
Index: uspace/srv/hid/compositor/compositor.c
===================================================================
--- uspace/srv/hid/compositor/compositor.c	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/srv/hid/compositor/compositor.c	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -2183,5 +2183,5 @@
 	async_sess_t *sess;
 	service_id_t dsid;
-	unsigned int flags = IPC_FLAG_AUTOSTART;
+	unsigned int flags = IPC_AUTOSTART;
 
 	errno_t rc = loc_service_get_id(svc, &dsid, flags);
Index: uspace/srv/locsrv/locsrv.c
===================================================================
--- uspace/srv/locsrv/locsrv.c	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/srv/locsrv/locsrv.c	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -855,13 +855,14 @@
 	if (svc == NULL) {
 		/* TODO:
-		 * consider non-blocking service start, return
-		 * some dummy id and block only after connection
-		 * request (actually makes more sense as those who asks
-		 * for ID might be someone else than those connecting)
+		 * Consider non-blocking service start, return some dummy id
+		 * and block only after connection request (actually makes more
+		 * sense as those who asks for ID might be someone else than
+		 * those connecting)
+		 *
 		 * Note:
 		 * service_list_mutex is released as we don't need to keep it
 		 * while waiting for start request to finish.
 		 */
-		if ((flags & IPC_FLAG_AUTOSTART) && !start_requested) {
+		if ((flags & IPC_FLAG_AUTOSTART_) && !start_requested) {
 			fibril_mutex_unlock(&services_list_mutex);
 			rc = loc_service_request_start(ns_name, name);
@@ -876,5 +877,5 @@
 		}
 
-		if ((flags & IPC_FLAG_BLOCKING) || flags & IPC_FLAG_AUTOSTART) {
+		if ((flags & IPC_FLAG_BLOCKING) || flags & IPC_FLAG_AUTOSTART_) {
 			fibril_condvar_wait(&services_list_cv,
 			    &services_list_mutex);
Index: uspace/srv/sysman/units/unit_mnt.c
===================================================================
--- uspace/srv/sysman/units/unit_mnt.c	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/srv/sysman/units/unit_mnt.c	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -210,5 +210,5 @@
 
 	mnt_data.flags |= u_mnt->blocking ? IPC_FLAG_BLOCKING : 0;
-	mnt_data.flags |= u_mnt->autostart ? IPC_FLAG_AUTOSTART : 0;
+	mnt_data.flags |= u_mnt->autostart ? IPC_AUTOSTART : 0;
 	mnt_data.unit = unit;
 
Index: uspace/srv/sysman/units/unit_mnt.h
===================================================================
--- uspace/srv/sysman/units/unit_mnt.h	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/srv/sysman/units/unit_mnt.h	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -39,5 +39,6 @@
 	char *device;
 
-	/** Should be underlying units (FS server, device) be autostarted */
+	/** Should be underlying units (FS server, device) be autostarted
+	 * (implies blocking) */
 	bool autostart;
 
Index: uspace/srv/vfs/vfs_ops.c
===================================================================
--- uspace/srv/vfs/vfs_ops.c	(revision a097c500d7255d9c2b837fd14c413d875f4de558)
+++ uspace/srv/vfs/vfs_ops.c	(revision 7cce333a07bde5c2607737eec35e56e90ce39fe8)
@@ -138,5 +138,5 @@
 		fs_handle = fs_name_to_handle(fsname, instance, false);
 		if (!fs_handle) {
-			if ((flags & IPC_FLAG_AUTOSTART)) {
+			if ((flags & IPC_FLAG_AUTOSTART_)) {
 				/*
 				 * Temporarily release the lock, we don't need it while
