Index: uspace/srv/sysman/job.c
===================================================================
--- uspace/srv/sysman/job.c	(revision c0c388d236382891ee84310636e6cab9af0f510c)
+++ uspace/srv/sysman/job.c	(revision 4fe7fcb3161434c48a85b2f498934246ecca5978)
@@ -212,4 +212,20 @@
 }
 
+int job_add_blocking_job(job_t *job, job_t *blocking_job)
+{
+	job_link_t *job_link = malloc(sizeof(job_link_t));
+	if (job_link == NULL) {
+		return ENOMEM;
+	}
+
+	link_initialize(&job_link->link);
+	list_append(&job_link->link, &job->blocking_jobs);
+
+	job_link->job = blocking_job;
+	job_add_ref(blocking_job);
+
+	return EOK;
+}
+
 static void job_destroy(job_t **job_ptr)
 {
Index: uspace/srv/sysman/job.h
===================================================================
--- uspace/srv/sysman/job.h	(revision c0c388d236382891ee84310636e6cab9af0f510c)
+++ uspace/srv/sysman/job.h	(revision 4fe7fcb3161434c48a85b2f498934246ecca5978)
@@ -55,4 +55,5 @@
 
 extern job_t *job_create(job_type_t type);
+extern int job_add_blocking_job(job_t *, job_t *);
 
 #endif
Index: uspace/srv/sysman/sysman.c
===================================================================
--- uspace/srv/sysman/sysman.c	(revision c0c388d236382891ee84310636e6cab9af0f510c)
+++ uspace/srv/sysman/sysman.c	(revision 4fe7fcb3161434c48a85b2f498934246ecca5978)
@@ -6,4 +6,8 @@
 #include "sysman.h"
 
+/** Create jobs for cluser of given unit.
+ *
+ * @note Using recursion, limits "depth" of dependency graph.
+ */
 static int sysman_create_closure_jobs(unit_t *unit, job_t **entry_job_ptr,
     list_t *accumulator, job_type_t type)
@@ -17,9 +21,14 @@
 
 	job->unit = unit;
-	// TODO set blocking jobs
 
 	list_foreach(unit->dependencies, dependencies, unit_dependency_t, edge) {
-		rc = sysman_create_closure_jobs(edge->dependency, NULL,
+		job_t *blocking_job = NULL;
+		rc = sysman_create_closure_jobs(edge->dependency, &blocking_job,
 		    accumulator, type);
+		if (rc != EOK) {
+			goto fail;
+		}
+		
+		rc = job_add_blocking_job(job, blocking_job);
 		if (rc != EOK) {
 			goto fail;
