rendered paste bodydiff --git a/wallpaper.c b/wallpaper.c
index b585692..ef4ca5b 100644
--- a/wallpaper.c
+++ b/wallpaper.c
@@ -538,9 +538,18 @@ wallpaperPaintBackground (CompScreen *s,
GLfloat *d, *data;
CompTexture * bg;
WallpaperWallpaper * ww;
-
-
- ww = getTextureForViewport(s, s->x, s->y);
+ int vx,vy;
+
+ vx = s->x + (s->windowOffsetX / s->width);
+ while (vx < 0) vx += s->hsize;
+ vx %= s->hsize;
+
+ vy = s->y + (s->windowOffsetY / s->height);
+ while (vy < 0) vy += s->vsize;
+ vy %= s->vsize;
+
+
+ ww = getTextureForViewport(s, vx, vy);
bg = &ww->texture;
if (!nBox)