Index: uspace/lib/c/generic/async.c
===================================================================
--- uspace/lib/c/generic/async.c	(revision a53ed3a8097360ccf174e8d94fb407db919eb66a)
+++ uspace/lib/c/generic/async.c	(revision 50f19b7ee8e94570b5c63896736c4eb49cfa18db)
@@ -1856,16 +1856,15 @@
 void async_usleep(suseconds_t timeout)
 {
-	amsg_t *msg = amsg_create();
-	if (!msg)
-		return;
-	
-	msg->wdata.fid = fibril_get_id();
-	
-	getuptime(&msg->wdata.to_event.expires);
-	tv_add_diff(&msg->wdata.to_event.expires, timeout);
+	awaiter_t awaiter;
+	awaiter_initialize(&awaiter);
+	
+	awaiter.fid = fibril_get_id();
+	
+	getuptime(&awaiter.to_event.expires);
+	tv_add_diff(&awaiter.to_event.expires, timeout);
 	
 	futex_down(&async_futex);
 	
-	async_insert_timeout(&msg->wdata);
+	async_insert_timeout(&awaiter);
 	
 	/* Leave the async_futex locked when entering this function */
@@ -1873,6 +1872,4 @@
 	
 	/* Futex is up automatically after fibril_switch() */
-	
-	amsg_destroy(msg);
 }
 
