Index: uspace/drv/fb/kfb/port.c
===================================================================
--- uspace/drv/fb/kfb/port.c	(revision 23e86c6dcff346ffc7f0237d512aa2e499b47244)
+++ uspace/drv/fb/kfb/port.c	(revision 4d9c8071cfd4fd433a31ad7f0edce89077cb3892)
@@ -245,5 +245,7 @@
 	gfx_coord2_t bmdim;
 	gfx_coord2_t dim;
-	gfx_coord_t x, y;
+	gfx_coord2_t sp;
+	gfx_coord2_t dp;
+	gfx_coord2_t pos;
 	pixelmap_t pbm;
 	pixel_t color;
@@ -270,9 +272,12 @@
 	pbm.data = kfbbm->alloc.pixels;
 
-	for (y = srect.p0.y; y < srect.p1.y; y++) {
-		for (x = srect.p0.x; x < srect.p1.x; x++) {
-			color = pixelmap_get_pixel(&pbm, x, y);
+	for (pos.y = srect.p0.y; pos.y < srect.p1.y; pos.y++) {
+		for (pos.x = srect.p0.x; pos.x < srect.p1.x; pos.x++) {
+			gfx_coord2_subtract(&pos, &kfbbm->rect.p0, &sp);
+			gfx_coord2_add(&pos, &offs, &dp);
+
+			color = pixelmap_get_pixel(&pbm, sp.x, sp.y);
 			kfb->pixel2visual(kfb->addr +
-			    FB_POS(kfb, x, y), color);
+			    FB_POS(kfb, dp.x, dp.y), color);
 		}
 	}
