diff --git a/src/client.c b/src/client.c
index e6268c88622c7e874081ee3e8fa2c47e35a59b9b..8416721209d14ecde9e4905642e00e017c5f0c96 100644
--- a/src/client.c
+++ b/src/client.c
@@ -1674,8 +1674,8 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
     if (c->depth == 32)
     {
         attributes.background_pixmap = None;
-        attributes.border_pixel = 0;
-        attributes.background_pixel = 0;
+        attributes.border_pixel = 65535;
+        attributes.background_pixel = 65535;
         valuemask |= CWBackPixmap|CWBackPixel|CWBorderPixel;
     }
 #endif
diff --git a/src/display.c b/src/display.c
index 949ed08f20fde3752419a0c33d0c3e508520a1f9..86541081964872ccb133348137af2c7377d76151 100644
--- a/src/display.c
+++ b/src/display.c
@@ -43,7 +43,7 @@
 static int
 handleXError (Display * dpy, XErrorEvent * err)
 {
-#if DEBUG
+#if 1 /* DEBUG */
     char buf[64];
 
     XGetErrorText (dpy, err->error_code, buf, 63);
diff --git a/src/mypixmap.c b/src/mypixmap.c
index 2cc78a9aba10390fdb57c8db5707238e467ec5ad..b990b46771c0bb93a8be6846930f4da35d3457d3 100644
--- a/src/mypixmap.c
+++ b/src/mypixmap.c
@@ -34,6 +34,32 @@
 
 #include "mypixmap.h"
 
+static void
+xfwmPixmapRefreshPict (xfwmPixmap * pm)
+{
+#ifdef HAVE_RENDER
+    ScreenInfo * screen_info = pm->screen_info;
+    
+    if (!pm->pict_format)
+    {
+        pm->pict_format = XRenderFindVisualFormat (myScreenGetXDisplay (screen_info), 
+                                                   screen_info->visual);
+    }
+
+    if (pm->pict != None)
+    {
+        XRenderFreePicture (myScreenGetXDisplay(pm->screen_info), pm->pict);
+        pm->pict == None;
+    }
+
+    if ((pm->pixmap) && (pm->pict_format))
+    {
+        pm->pict = XRenderCreatePicture (myScreenGetXDisplay (screen_info), 
+                                     pm->pixmap, pm->pict_format, 0, NULL);
+    }
+#endif
+}
+
 static gboolean
 xfwmPixmapCompose (xfwmPixmap * pm, gchar * dir, gchar * file)
 {
@@ -162,11 +188,7 @@ xfwmPixmapLoad (ScreenInfo * screen_info, xfwmPixmap * pm, gchar * dir, gchar *
     xfwmPixmapCompose (pm, dir, file);
     
 #ifdef HAVE_RENDER
-    if (pm->pict_format)
-    {
-        pm->pict = XRenderCreatePicture (myScreenGetXDisplay (screen_info), 
-                                     pm->pixmap, pm->pict_format, 0, NULL);
-    }
+    xfwmPixmapRefreshPict (pm);
 #endif
 
     return TRUE;
@@ -177,7 +199,9 @@ xfwmPixmapCreate (ScreenInfo * screen_info, xfwmPixmap * pm,
                   gint width, gint height)
 {
     TRACE ("entering xfwmPixmapCreate, width=%i, height=%i", width, height);
-    if ((width < 1) || (height < 1) || (!screen_info))
+    g_return_if_fail (screen_info != NULL);
+
+    if ((width < 1) || (height < 1))
     {
         xfwmPixmapInit (screen_info, pm);
     }
@@ -191,13 +215,10 @@ xfwmPixmapCreate (ScreenInfo * screen_info, xfwmPixmap * pm,
                                   pm->pixmap, width, height, 1);
         pm->width = width;
         pm->height = height;
-
+    }
 #ifdef HAVE_RENDER
-        pm->pict_format = XRenderFindVisualFormat (myScreenGetXDisplay (screen_info), 
-                                                   screen_info->visual);
-        pm->pict = None;
+    xfwmPixmapRefreshPict (pm);
 #endif
-    }
 }
 
 void
@@ -209,7 +230,8 @@ xfwmPixmapInit (ScreenInfo * screen_info, xfwmPixmap * pm)
     pm->width = 0;
     pm->height = 0;
 #ifdef HAVE_RENDER
-    pm->pict_format = NULL;
+    pm->pict_format = XRenderFindVisualFormat (myScreenGetXDisplay (screen_info), 
+                                               screen_info->visual);
     pm->pict = None;
 #endif
 }
@@ -288,4 +310,7 @@ xfwmPixmapFill (xfwmPixmap * src, xfwmPixmap * dst,
     xfwmPixmapFillRectangle (myScreenGetXDisplay (src->screen_info), 
                              src->screen_info->screen,  
                              src->mask, dst->mask, x, y, width, height);
+#ifdef HAVE_RENDER
+    xfwmPixmapRefreshPict (dst);
+#endif
 }
diff --git a/src/mywindow.c b/src/mywindow.c
index fbc14ba81370b25ecfb07e90ef2d9badfae15b65..27d8df0f8138ec2d6969fc6f0638db7c3c028bce 100644
--- a/src/mywindow.c
+++ b/src/mywindow.c
@@ -95,10 +95,10 @@ xfwmWindowCreate (ScreenInfo * screen_info, Visual *visual, gint depth, Window p
     win->y = 0;
     win->width = 1;
     win->height = 1;
+    xfwmWindowSetVisual (win, visual, depth);
 #ifdef HAVE_RENDER
     win->pict_format = XRenderFindVisualFormat (myScreenGetXDisplay (screen_info), win->visual);
 #endif
-    xfwmWindowSetVisual (win, visual, depth);
 }
 
 void
@@ -244,9 +244,21 @@ xfwmWindowCopyComposite (xfwmWindow * win, xfwmPixmap * pix)
         Picture pict;
         Pixmap temp;
 
-        if (!pix->pict || !pix->pict_format || !win->pict_format)
+        if (!pix->pict)
+        {
+            g_warning ("xfwmWindowCopyComposite: Pixmap picture does not exist");
+            return FALSE;
+        }
+
+        if (!pix->pict_format)
+        {
+            g_warning ("xfwmWindowCopyComposite: Pixmap oicture format is unkown");
+            return FALSE;
+        }
+
+        if (!win->pict_format)
         {
-            TRACE ("xfwmWindowSetBG: Cannot get XRender picture format");
+            g_warning ("xfwmWindowCopyComposite: Window oicture format is unkown");
             return FALSE;
         }