diff --git a/src/conio/sdl_con.c b/src/conio/sdl_con.c
index d03f9c88bff9bd5ea5ebcbbe0658e22f5b1d9292..b6cde0ddfeb0dc882a710e6f4df7c447af18e4ca 100644
--- a/src/conio/sdl_con.c
+++ b/src/conio/sdl_con.c
@@ -1147,17 +1147,19 @@ int sdl_video_event_thread(void *data)
 									for(y=0; y<rect->height; y++) {
 										for(x=0; x<rect->width; x++) {
 											int palette_entry;
-											r.x=x*vstat.scaling;
-											r.y=y*vstat.scaling;
 											r.w=vstat.scaling;
 											r.h=vstat.scaling;
 											palette_entry=rect->data[y*rect->width+x];
 #ifdef OFFSCREEN_FILL
+											r.x=x*vstat.scaling;
+											r.y=y*vstat.scaling;
 											sdl.FillRect(new_rect, &r, sdl.MapRGB(new_rect->format
 												, dac_default[vstat.palette[palette_entry]].red
 												, dac_default[vstat.palette[palette_entry]].green
 												, dac_default[vstat.palette[palette_entry]].blue));
 #else
+											r.x=(x+rect.x)*vstat.scaling;
+											r.y=(y+rect.y)*vstat.scaling;
 											sdl.FillRect(win, &r, sdl.MapRGB(win->format
 												, dac_default[vstat.palette[palette_entry]].red
 												, dac_default[vstat.palette[palette_entry]].green