Index: uspace/lib/c/generic/async.c
===================================================================
--- uspace/lib/c/generic/async.c	(revision 9ba415e8ec4bc684d1ba8a424cc83de1a57c7aa9)
+++ uspace/lib/c/generic/async.c	(revision 6a5d05bd2551e64111bea4f9332dd7448c26ce84)
@@ -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);
 }
 
