Index: compiz-0.6.2/src/screen.c =================================================================== --- compiz-0.6.2.orig/src/screen.c +++ compiz-0.6.2/src/screen.c @@ -2244,7 +2244,8 @@ findTopLevelWindowAtScreen (CompScreen * for (w = s->windows; w; w = w->next) if (w->frame == id) return w; - } + } else if (w->resName && strstr(w->resName,"screensaver")) + return w; return NULL; } Index: compiz-0.6.2/src/paint.c =================================================================== --- compiz-0.6.2.orig/src/paint.c +++ compiz-0.6.2/src/paint.c @@ -211,7 +211,9 @@ paintOutputRegion (CompScreen *sc if (count == 0 && !REGION_NOT_EMPTY (tmpRegion) && screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b && - XEqualRegion (w->region, &screen->region)) + XEqualRegion (w->region, &screen->region) && + !(w->resName && strcmp(w->resName, "gnome-screensaver") == 0) + ) { unredirectWindow (w); fullscreenWindow = w;