diff --git a/src/compositor.c b/src/compositor.c
index 4895bd65888ec1613f6b0166f6bd7d1037c519cb..0118b67ead394a61bc126aa773c9bd07ba749c06 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -945,8 +945,8 @@ weston_surface_to_buffer_rect(struct weston_surface *surface,
 	rect.y1 = floorf(yf);
 
 	scaler_surface_to_buffer(surface, rect.x2, rect.y2, &xf, &yf);
-	rect.x2 = floorf(xf);
-	rect.y2 = floorf(yf);
+	rect.x2 = ceilf(xf);
+	rect.y2 = ceilf(yf);
 
 	return weston_transformed_rect(surface->width_from_buffer,
 				       surface->height_from_buffer,