diff --git a/server/serial.c b/server/serial.c
index bd016633020b2add596828105b49c0ffb14e6ae1..8fdce64efd2ea456e4c597622dd48e31d1215c23 100644
--- a/server/serial.c
+++ b/server/serial.c
@@ -359,6 +359,14 @@ DECL_HANDLER(set_serial_info)
         if(req->flags & SERIALINFO_SET_MASK)
         {
             serial->eventmask = req->eventmask;
+            if(!serial->eventmask)
+            {
+                while(serial->wait_q.head)
+                {
+                    async_notify(serial->wait_q.head, STATUS_SUCCESS);
+                    destroy_async(serial->wait_q.head);
+                }
+            }
         }
 
         /* comm port error status */