--- a/src/render/SDL_render.c 2014-03-15 22:31:42.000000000 -0400 +++ b/src/render/SDL_render.c 2014-09-25 22:14:44.838935061 -0400 @@ -1229,8 +1229,8 @@ CHECK_RENDERER_MAGIC(renderer, -1) if (rect) { - renderer->clip_rect.x = (int)SDL_floor(rect->x * renderer->scale.x); - renderer->clip_rect.y = (int)SDL_floor(rect->y * renderer->scale.y); + renderer->clip_rect.x = (int)SDL_floor(rect->x * renderer->scale.x + renderer->viewport.x); + renderer->clip_rect.y = (int)SDL_floor(rect->y * renderer->scale.y - renderer->viewport.y); renderer->clip_rect.w = (int)SDL_ceil(rect->w * renderer->scale.x); renderer->clip_rect.h = (int)SDL_ceil(rect->h * renderer->scale.y); } else {