diff --git a/scheme/user.rs b/scheme/user.rs
index fbd27264c7e375a4bc078d535bba15c71a4cf4a1..c2d8650f2fae4cd8b416a20b2ad54243843db792 100644
--- a/scheme/user.rs
+++ b/scheme/user.rs
@@ -59,7 +59,10 @@ impl UserInner {
         };
 
         let len = self.todo.send(packet);
-        context::event::trigger(ROOT_SCHEME_ID.load(Ordering::SeqCst), self.handle_id, EVENT_READ, len * mem::size_of::<Packet>());
+        //TODO: Use O_NONBLOCK and send one notification
+        for _i in 0 .. len {
+            context::event::trigger(ROOT_SCHEME_ID.load(Ordering::SeqCst), self.handle_id, EVENT_READ, mem::size_of::<Packet>());
+        }
 
         Error::demux(self.done.receive(&id))
     }