diff --git a/server/queue.c b/server/queue.c
index 238e3a9..e575325 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -16,6 +16,7 @@
 #include "thread.h"
 #include "process.h"
 #include "request.h"
+#include "user.h"
 
 enum message_kind { SEND_MESSAGE, POST_MESSAGE, COOKED_HW_MESSAGE, RAW_HW_MESSAGE };
 #define NB_MSG_KINDS (RAW_HW_MESSAGE+1)
@@ -40,7 +41,7 @@
     struct message        *next;      /* next message in list */
     struct message        *prev;      /* prev message in list */
     enum message_type      type;      /* message type */
-    handle_t               win;       /* window handle */
+    user_handle_t          win;       /* window handle */
     unsigned int           msg;       /* message code */
     unsigned int           wparam;    /* parameters */
     unsigned int           lparam;    /* parameters */
@@ -65,7 +66,7 @@
     struct timer   *prev;      /* prev timer in list */
     struct timeval  when;      /* next expiration */
     unsigned int    rate;      /* timer rate in ms */
-    handle_t        win;       /* window handle */
+    user_handle_t   win;       /* window handle */
     unsigned int    msg;       /* message to post */
     unsigned int    id;        /* timer id */
     unsigned int    lparam;    /* lparam for message */
@@ -550,7 +551,7 @@
 }
 
 /* find an expired timer matching the filtering parameters */
-static struct timer *find_expired_timer( struct msg_queue *queue, handle_t win,
+static struct timer *find_expired_timer( struct msg_queue *queue, user_handle_t win,
                                          unsigned int get_first, unsigned int get_last,
                                          int remove )
 {
@@ -568,7 +569,8 @@
 }
 
 /* kill a timer */
-static int kill_timer( struct msg_queue *queue, handle_t win, unsigned int msg, unsigned int id )
+static int kill_timer( struct msg_queue *queue, user_handle_t win,
+                       unsigned int msg, unsigned int id )
 {
     struct timer *timer;
 
@@ -597,12 +599,15 @@
 }
 
 /* remove all messages and timers belonging to a certain window */
-static void cleanup_window( struct msg_queue *queue, handle_t win )
+void queue_cleanup_window( struct thread *thread, user_handle_t win )
 {
+    struct msg_queue *queue = thread->queue;
     struct timer *timer;
     struct message *msg;
     int i;
 
+    if (!queue) return;
+
     /* remove timers */
     timer = queue->first_timer;
     while (timer)
@@ -818,7 +823,8 @@
 }
 
 
-inline static struct message *find_matching_message( const struct message_list *list, handle_t win,
+inline static struct message *find_matching_message( const struct message_list *list,
+                                                     user_handle_t win,
                                                      unsigned int first, unsigned int last )
 {
     struct message *msg;
@@ -981,7 +987,7 @@
 /* cleanup a queue when a window is deleted */
 DECL_HANDLER(cleanup_window_queue)
 {
-    if (current->queue) cleanup_window( current->queue, req->win );
+    queue_cleanup_window( current, req->win );
 }
 
 
