Index: Source/x11/XGServerWindow.m
===================================================================
--- Source/x11/XGServerWindow.m	(revision 25602)
+++ Source/x11/XGServerWindow.m	(working copy)
@@ -3031,7 +3031,6 @@
 
 - (void) setwindowlevel: (int)level : (int)win
 {
-  static Atom net_wm_state_skip_pager = None;
   gswindow_device_t *window;
 
   window = WINDOW_WITH_TAG(win);
@@ -3039,9 +3038,9 @@
     return;
 
   NSDebugLLog(@"XGTrace", @"DPSsetwindowlevel: %d : %d", level, win);
-  if ((int)(window->win_attrs.window_level) != level
-    || (window->win_attrs.flags & GSWindowLevelAttr) == 0)
-    {
+//  if ((int)(window->win_attrs.window_level) != level
+//    || (window->win_attrs.flags & GSWindowLevelAttr) == 0)
+//    {
       window->win_attrs.flags |= GSWindowLevelAttr;
       window->win_attrs.window_level = level;
 
@@ -3151,37 +3150,28 @@
  */
           if (skipTaskbar)
             {
-              static Atom net_wm_state_add = None;
+              data[0] = generic.netstates.net_wm_state_skip_taskbar_atom;
+              data[1] = generic.netstates.net_wm_state_skip_pager_atom;
+              XChangeProperty(dpy, window->ident, generic.netstates.net_wm_state_atom,
+                              XA_ATOM, 32, PropModeReplace,
+                              (unsigned char *)&data, 2);
 
-              if (net_wm_state_add == None)
-                net_wm_state_add = XInternAtom(dpy, "_NET_WM_STATE_ADD", False);
-              if (net_wm_state_skip_pager == None)
-                net_wm_state_skip_pager = XInternAtom(dpy, "_NET_WM_STATE_SKIP_PAGER",
-                                                      False);
               [self _sendRoot: window->root 
                     type: generic.netstates.net_wm_state_atom
                     window: window->ident
-                    data0: net_wm_state_add
+                    data0: generic.netstates.net_wm_state_add_atom
                     data1: generic.netstates.net_wm_state_skip_taskbar_atom
-                    data2: net_wm_state_skip_pager
+                    data2: generic.netstates.net_wm_state_skip_pager_atom
                     data3: 1];
             } 
           else 
             {
-              static Atom net_wm_state_remove = None;
-              
-              if (net_wm_state_remove == None)
-                net_wm_state_remove = XInternAtom(dpy, "_NET_WM_STATE_REMOVE", False);
-              if (net_wm_state_skip_pager == None)
-                net_wm_state_skip_pager = XInternAtom(dpy, "_NET_WM_STATE_SKIP_PAGER",
-                                                      False);
-              
               [self _sendRoot: window->root 
                     type: generic.netstates.net_wm_state_atom
                     window: window->ident
-                    data0: net_wm_state_remove
+                    data0: generic.netstates.net_wm_state_remove_atom
                     data1: generic.netstates.net_wm_state_skip_taskbar_atom
-                    data2: net_wm_state_skip_pager
+                    data2: generic.netstates.net_wm_state_skip_pager_atom
                     data3: 1];
             }
         }
@@ -3218,7 +3208,7 @@
                 data2: 0
                 data3: 0];
         }
-    }
+//    }
 }
 
 - (int) windowlevel: (int)win
Index: Headers/x11/XGGeneric.h
===================================================================
--- Headers/x11/XGGeneric.h	(revision 25602)
+++ Headers/x11/XGGeneric.h	(working copy)
@@ -54,7 +54,10 @@
 
 typedef struct {
   Atom net_wm_state_atom;
+  Atom net_wm_state_add_atom;
+  Atom net_wm_state_remove_atom;
   Atom net_wm_state_skip_taskbar_atom;
+  Atom net_wm_state_skip_pager_atom;
 } XGWMNetStates;
 
 /*
