diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 2d5477c15dc..052bef294a2 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -12031,7 +12031,7 @@ static const struct /* 0 */ { WAIT_TIMEOUT, WAIT_TIMEOUT, FALSE }, { WAIT_TIMEOUT, 0, FALSE }, { WAIT_TIMEOUT, 0, FALSE }, - { WAIT_TIMEOUT, WAIT_TIMEOUT, TRUE }, + { WAIT_TIMEOUT, WAIT_TIMEOUT, FALSE }, { WAIT_TIMEOUT, WAIT_TIMEOUT, FALSE }, /* 5 */ { WAIT_TIMEOUT, 0, FALSE }, { WAIT_TIMEOUT, 0, FALSE }, diff --git a/server/queue.c b/server/queue.c index 3b7b4499a41..3ab8d0020cb 100644 --- a/server/queue.c +++ b/server/queue.c @@ -771,7 +771,7 @@ static int msg_queue_add_queue( struct object *obj, struct wait_queue_entry *ent set_error( STATUS_ACCESS_DENIED ); return 0; } - if (process->idle_event) set_event( process->idle_event ); + if (process->idle_event && !(queue->wake_mask & QS_SMRESULT)) set_event( process->idle_event ); if (queue->fd && list_empty( &obj->wait_queue )) /* first on the queue */ set_fd_events( queue->fd, POLLIN );