Index: uspace/lib/libc/generic/fibril_sync.c
===================================================================
--- uspace/lib/libc/generic/fibril_sync.c	(revision 854ad230c0123e578e67c3a279294dd30b0568eb)
+++ uspace/lib/libc/generic/fibril_sync.c	(revision b69bec5e88dc3e437f3f41c9497f63c714a12c39)
@@ -129,6 +129,12 @@
 	if (frw->writers) {
 		fibril_t *f = (fibril_t *) fibril_get_id();
+		awaiter_t wdata;
+
+		wdata.fid = (fid_t) f;
+		wdata.active = false;
+		wdata.wu_event.inlist = true;
+		link_initialize(&wdata.wu_event.link);
 		f->flags &= ~FIBRIL_WRITER;
-		list_append(&f->link, &frw->waiters);
+		list_append(&wdata.wu_event.link, &frw->waiters);
 		fibril_switch(FIBRIL_TO_MANAGER);
 	} else {
@@ -143,6 +149,12 @@
 	if (frw->writers || frw->readers) {
 		fibril_t *f = (fibril_t *) fibril_get_id();
+		awaiter_t wdata;
+
+		wdata.fid = (fid_t) f;
+		wdata.active = false;
+		wdata.wu_event.inlist = true;
+		link_initialize(&wdata.wu_event.link);
 		f->flags |= FIBRIL_WRITER;
-		list_append(&f->link, &frw->waiters);
+		list_append(&wdata.wu_event.link, &frw->waiters);
 		fibril_switch(FIBRIL_TO_MANAGER);
 	} else {
@@ -167,17 +179,25 @@
 	while (!list_empty(&frw->waiters)) {
 		link_t *tmp = frw->waiters.next;
-		fibril_t *f = list_get_instance(tmp, fibril_t, link);
+		awaiter_t *wdp;
+		fibril_t *f;
+		
+		wdp = list_get_instance(tmp, awaiter_t, wu_event.link);
+		f = (fibril_t *) wdp->fid;
 		
 		if (f->flags & FIBRIL_WRITER) {
 			if (frw->readers)
 				break;
-			list_remove(&f->link);
-			fibril_add_ready((fid_t) f);
+			wdp->active = true;
+			wdp->wu_event.inlist = false;
+			list_remove(&wdp->wu_event.link);
+			fibril_add_ready(wdp->fid);
 			frw->writers++;
 			optimize_execution_power();
 			break;
 		} else {
-			list_remove(&f->link);
-			fibril_add_ready((fid_t) f);
+			wdp->active = true;
+			wdp->wu_event.inlist = false;
+			list_remove(&wdp->wu_event.link);
+			fibril_add_ready(wdp->fid);
 			frw->readers++;
 			optimize_execution_power();
