Moved hardware message queue handling to the server.

diff --git a/dlls/user/user_main.c b/dlls/user/user_main.c
index cdd1ff2..196fbcc 100644
--- a/dlls/user/user_main.c
+++ b/dlls/user/user_main.c
@@ -197,7 +197,6 @@
 static BOOL process_attach(void)
 {
     HINSTANCE16 instance;
-    int queueSize;
 
     /* Create USER heap */
     if ((instance = LoadLibrary16( "USER.EXE" )) < 32) return FALSE;
@@ -232,10 +231,6 @@
     /* Initialize message spying */
     if (!SPY_Init()) return FALSE;
 
-    /* Create system message queue */
-    queueSize = GetProfileIntA( "windows", "TypeAhead", 120 );
-    if (!QUEUE_CreateSysMsgQueue( queueSize )) return FALSE;
-
     /* Set double click time */
     SetDoubleClickTime( GetProfileIntA("windows","DoubleClickSpeed",452) );
 
diff --git a/dlls/x11drv/window.c b/dlls/x11drv/window.c
index c40eb7d..6e58ba0 100644
--- a/dlls/x11drv/window.c
+++ b/dlls/x11drv/window.c
@@ -897,7 +897,8 @@
     if (!ret)
     {
         WIN_UnlinkWindow( hwnd );
-        goto failed;
+        X11DRV_DestroyWindow( hwnd );
+        return FALSE;
     }
 
     /* Send the size messages */