Index: uspace/lib/gui/window.c
===================================================================
--- uspace/lib/gui/window.c	(revision dd5c62358d0de0849b835d385775600d4a26fdf5)
+++ uspace/lib/gui/window.c	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -616,6 +616,7 @@
 	win->surface = NULL;
 
+	unsigned int ipc_flags = IPC_FLAG_AUTOSTART;
 	service_id_t reg_dsid;
-	errno_t rc = loc_service_get_id(winreg, &reg_dsid, 0);
+	errno_t rc = loc_service_get_id(winreg, &reg_dsid, ipc_flags);
 	if (rc != EOK) {
 		free(win);
@@ -624,5 +625,6 @@
 
 	async_sess_t *reg_sess =
-	    loc_service_connect(reg_dsid, INTERFACE_COMPOSITOR, 0);
+	    loc_service_connect(reg_dsid, INTERFACE_COMPOSITOR, ipc_flags);
+
 	if (reg_sess == NULL) {
 		free(win);
@@ -639,5 +641,7 @@
 	}
 
-	win->osess = loc_service_connect(out_dsid, INTERFACE_COMPOSITOR, 0);
+
+	win->osess = loc_service_connect(out_dsid, INTERFACE_COMPOSITOR, ipc_flags);
+
 	if (win->osess == NULL) {
 		free(win);
@@ -645,5 +649,6 @@
 	}
 
-	win->isess = loc_service_connect(in_dsid, INTERFACE_COMPOSITOR, 0);
+	win->isess = loc_service_connect(in_dsid, INTERFACE_COMPOSITOR, ipc_flags);
+
 	if (win->isess == NULL) {
 		async_hangup(win->osess);
Index: uspace/lib/sysman/src/ctl.c
===================================================================
--- uspace/lib/sysman/src/ctl.c	(revision dd5c62358d0de0849b835d385775600d4a26fdf5)
+++ uspace/lib/sysman/src/ctl.c	(revision e55741e3f4e4a280b2de18f665b9ea5537493bf9)
@@ -33,4 +33,12 @@
 #include <sysman/sysman.h>
 
+/*
+ * TODO
+ * Non-blocking favor of this API is effectively incomplete as it doesn't
+ * provide means how to obtain result of the start operation.
+ * Probably devise individual API for brokers that could exploit the fact that
+ * broker knows when appropriate exposee is created and the request succeeded.
+ * Still though, it's necessary to centralize timeout into sysman.
+ */
 int sysman_unit_start(const char *unit_name, int flags)
 {
